#norelated ---- *目次 [#pf3ab3b2] #contents ---- *opensslでの簡単な証明書の作り方 [#pa452071] 確認環境は、 -centos7 -openssl1.0.1e-fips **手順 [#f3ae30fb] コマンドをうったときのディレクトリに証明書が作成されるため、最初にディレクトリを作っておくといい。例えば、~/cert など。~ ~/certを作成した場合、cdで~/certに移動後にコマンドを入力する。~ ***手順1.認証局作成 [#u4fbe304] CA環境を構築する。 /etc/pki/tls/misc/CA -newca これでウィザードにしたがって入力していく。~ 前もって、/etc/pki/tls/openssl.cnfでの設定を変更しておくと、改行するだけでいいので入力が楽になる。~ デフォルトで作成すると、/etc/pki/CAに作成される。~ CAを変更したい場合は、このディレクトリごと削除すれば可能。~ rm -rf /etc/pki/CA ***手順2.CAに対してリクエストファイルを作成する [#y5be0eca] あくまで簡易的な手順。詳細なリクエストファイルを作成したいときは個別に行わないといけない(別の手順として記載)。~ /etc/pki/tls/misc/CA -newreq ***手順3.リクエストされたファイルに対して署名をする(証明書を発行する) [#z5add5e6] 手順2でのリクエストファイルから証明書を作成する。 /etc/pki/tls/misc/CA -sign **補足事項 [#wb57147f] 幾つか必要となるコマンドを別途記載した。 ***PEMからDER変換 [#d13bd44c] 上記手順で作成される証明書は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作成 [#m36e885c] すべてのファイルが入っているpfxを作成する。(これ自信ない) openssl pkcs12 -export -in newcert.pem -inkey newkey.pem -certfile /etc/pki/CA/cacert.pem -out newkey.pfx *opensslでサブジェクトの別名の作成方法 [#y92e9878] 初期設定のままでは証明書内のサブジェクトの別名をつけることが不可能であるため、/etc/pki/tls/openssl.cnfの設定を変更する必要がある。~ 多分やり方は2つあるが、今回は、CAが署名する段階で付与する方法を記載。もう1つは、csrに記載する方法。一般的にはcsrに記載する方法だと思うが、仕事の都合上、簡単に出来る方を選んだ。~ **設定変更箇所 [#p2f7c127] いくつか変更箇所があるので抜粋した。関係ないところも変更している可能性があるが、検証しながら行ったためそのまま記載。 ***[ CA_default ]項目 [#w8e65afd] x509_extensionsを変更する。ただ、CA_defaultの変更なので関係ない可能性がある。変更は以下のように変更する。 ◆変更前 x509_extensions = usr_cert ◆変更後 x509_extensions = v3_ca ***[ req ]項目 [#oea7c7f8] 変更したか、初期値か覚えていないが以下に設定する。 x509_extensions = v3_ca ***[ v3_req ]項目 [#t78ca71f] これは別サイトに記載しているが、実際今回のやり方では関係ないと思う。が、一応覚書として記載しておく。 ◆追記 subjectAltName = @alt_names [alt_names] DNS.1=aaa.com DNS.2=bbb.com ***[ v3_ca ]項目 [#ge41e205] ここが最重要項目。ここを変更することでサブジェクト別名に追加される。初期値はコメントあうとされていると思うのでコメントを外すだけで可能。~ subjectAltName = email:copy issureAltName = issure:copy この''subjectAltName''に、リクエスト時に設定されているemailが入る(多分)。そして、''copy''の部分を、自分の変更したいメールアドレスに変更することも可能(実動作未確認)。~ ''issureAltName''は、発行者の別名というフィールドに入るemailとなる。つまりCAに設定されているemailが入る。これも''copy''の部分を、自分の変更したいメールアドレスに変更することも可能(実動作未確認)。~ ''issureAltName''は、発行者の別名というフィールドに入るemailとなる。つまりCAに設定されているemailが入る。これも''copy''の部分を、自分の変更したいメールアドレスに変更することも可能(実動作未確認、多分aaa@aaaAlt@aaa.com)。~ **手順 [#hb6ac4d9] サブジェクト別名の設定が完了したら、以下コマンドで完了。詳細は上記のopensslでの簡単な証明書の作り方を参照。 /etc/pki/tls/misc/CA -newca /etc/pki/tls/misc/CA -newreq /etc/pki/tls/misc/CA -signCA 手順3つ目が、最初と異なることに注意する。(signではなくsignCA) *opensslで楕円曲線証明書作成方法 [#e0b45d94] 強力な暗号方式(なのかな?)。今後多分主流になると思われる。~ 他の手順と異なるので注意。~ **認証局構築及び自己署名 [#k17ac72c] 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での簡易じゃない証明書作成手順 [#t196053c] 簡易じゃないため、細かく設定を変更することが出来る。~ *opensslでcrlのバージョン1を作成する方法 [#y677e502] 通常はv3で作成されるが、必要となりv1を作った。作成方法は簡単で、/etc/pki/tls/openssl.cnf設定を買えるだけで出来た。 ◆変更前 crlnumber = $dir/crlnumber ◆変更後 #crlnumber = $dir/crlnumber コメントアウトのみでいける。この設定箇所にコメントが書いてあるので、そのとおりに設定することで出来た。~