Sponsored Link

目次


opensslでの簡単な証明書の作り方

確認環境は、

  • centos7
  • openssl1.0.1e-fips

手順

コマンドをうったときのディレクトリに証明書が作成されるため、最初にディレクトリを作っておくといい。例えば、~/cert など。

/certを作成した場合、cdで~/certに移動後にコマンドを入力する。

手順1.認証局作成

CA環境を構築する。

/etc/pki/tls/misc/CA -newca

これでウィザードにしたがって入力していく。
前もって、/etc/pki/tls/openssl.cnfでの設定を変更しておくと、改行するだけでいいので入力が楽になる。
デフォルトで作成すると、/etc/pki/CAに作成される。
CAを変更したい場合は、このディレクトリごと削除すれば可能。

rm -rf /etc/pki/CA

手順2.CAに対してリクエストファイルを作成する

あくまで簡易的な手順。詳細なリクエストファイルを作成したいときは個別に行わないといけない(別の手順として記載)。

/etc/pki/tls/misc/CA -newreq

手順3.リクエストされたファイルに対して署名をする(証明書を発行する)

手順2でのリクエストファイルから証明書を作成する。

/etc/pki/tls/misc/CA -sign

補足事項

幾つか必要となるコマンドを別途記載した。

PEMからDER変換

上記手順で作成される証明書はPEM形式でwindowsではインストール出来ないため、der形式に変換する必要がある。

openssl x509 -inform PEM -in newcert.pem -outform DER -out newcert.cer

また、CA証明書も同じ。CA証明書の格納場所も記載しておく。
outと指定された箇所に出力される。

openssl x509 -inform PEM -in /etc/pki/CA/cacert.pem -outform DER -out /etc/pki/CA/cacert.cer

pfx作成

すべてのファイルが入っているpfxを作成する。(これ自信ない)

openssl pkcs12 -export -in newcert.pem -inkey newkey.pem -certfile /etc/pki/CA/cacert.pem -out newkey.pfx

opensslでサブジェクトの別名の作成方法

初期設定のままでは証明書内のサブジェクトの別名をつけることが不可能であるため、/etc/pki/tls/openssl.cnfの設定を変更する必要がある。
多分やり方は2つあるが、今回は、CAが署名する段階で付与する方法を記載。もう1つは、csrに記載する方法。一般的にはcsrに記載する方法だと思うが、仕事の都合上、簡単に出来る方を選んだ。

設定変更箇所

いくつか変更箇所があるので抜粋した。関係ないところも変更している可能性があるが、検証しながら行ったためそのまま記載。

[ CA_default ]項目

x509_extensionsを変更する。ただ、CA_defaultの変更なので関係ない可能性がある。変更は以下のように変更する。

◆変更前
x509_extensions = usr_cert
◆変更後
x509_extensions = v3_ca

[ req ]項目

変更したか、初期値か覚えていないが以下に設定する。

x509_extensions = v3_ca

[ v3_req ]項目

これは別サイトに記載しているが、実際今回のやり方では関係ないと思う。が、一応覚書として記載しておく。

◆追記
subjectAltName = @alt_names
[alt_names]
DNS.1=aaa.com
DNS.2=bbb.com

[ v3_ca ]項目

ここが最重要項目。ここを変更することでサブジェクト別名に追加される。初期値はコメントあうとされていると思うのでコメントを外すだけで可能。

subjectAltName = email:copy
issureAltName = issure:copy

このsubjectAltNameに、リクエスト時に設定されているemailが入る(多分)。そして、copyの部分を、自分の変更したいメールアドレスに変更することも可能(実動作未確認)。
issureAltNameは、発行者の別名というフィールドに入るemailとなる。つまりCAに設定されているemailが入る。これもcopyの部分を、自分の変更したいメールアドレスに変更することも可能(実動作未確認、多分aaa@aaaAlt@aaa.com)。

手順

サブジェクト別名の設定が完了したら、以下コマンドで完了。詳細は上記のopensslでの簡単な証明書の作り方を参照。

/etc/pki/tls/misc/CA -newca
/etc/pki/tls/misc/CA -newreq
/etc/pki/tls/misc/CA -signCA

手順3つ目が、最初と異なることに注意する。(signではなくsignCA)

opensslで楕円曲線証明書作成方法

強力な暗号方式(なのかな?)。今後多分主流になると思われる。
他の手順と異なるので注意。

認証局構築及び自己署名

openssl ecparam -genkey -name prime256v1 -out cakey.pem
openssl req -new -x509 -days 3650 -sha256 -key cakey.pem -out cacert.cer
openssl req -new -key cakey.pem -out careq.csr
openssl x509 -req -in careq.csr -signkey cakey.pem -out cacert.cer -days 3650
echo "newreq.pem"| /usr/local/ssl/misc/CA.pl -newca > /dev/null

opensslでの簡易じゃない証明書作成手順

簡易じゃないため、細かく設定を変更することが出来る。

opensslでcrlのバージョン1を作成する方法

通常はv3で作成されるが、必要となりv1を作った。作成方法は簡単で、/etc/pki/tls/openssl.cnf設定を買えるだけで出来た。

◆変更前
crlnumber = $dir/crlnumber
◆変更後
#crlnumber = $dir/crlnumber

コメントアウトのみでいける。この設定箇所にコメントが書いてあるので、そのとおりに設定することで出来た。


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2019-06-01 (土) 14:01:57 (1791d)