OpenSSLで証明書を作成するにはいくつかやり方がありますが、基本的には以下の2つの手順で行います。
またこの方法はサーバの証明書、クライアントの証明書、また私設のCAの証明書に関しても同じです。
- 証明書要求(CSR)作成
- CSRを署名して証明書を発行
openssl genrsa -out my_rsa.key 2048
(-aes128や-des3オプションでパスフレーズ付きの秘密鍵となる)
1-2.次にreqコマンドでCSRを出力します。
openssl req -new -key my_rsa.key -out my_csr.csr
(-newkeyオプションで秘密鍵生成も一緒に行う)
2-1.my_rsa.keyで署名する場合(自己署名)
openssl x509 -in my_csr.csr -req -signkey my_rsa.key -out my_crt.crt -days 365
2-2.私設CAで署名する(openssl caコマンド)場合
まずは私設CAを作成する必要があります。
CA(認証局)をつくるには、CA.shスクリプト(/usr/lib/ssl/misc or /usr/ssl/misc)を-newcaオプション付きで実行します。
途中秘密鍵ファイル(cakey.pem)に暗号をかけるためのパスワードを聞かれるので任意のパスワードを入力します。(以下の3か所)
- Enter PEM pass phrase:
Verifying - Enter PEM pass phrase:
:
:
Enter pass phrase for ./demoCA/private/./cakey.pem:
次に1.で作成したCSRファイルをdemoCA/フォルダと同じ階層に格納し、caコマンドで署名します。
- openssl ca -in my_csr.csr
またcaコマンドではopenssl.cnfのポリシー(# For the CA policy)に従いますので、
(たとえば主体者と発行者でcountryNameが同じでなければならないなど・・・)、適宜変更して下さい。
- Enter pass phrase for ./demoCA/private/cakey.pem:
my_rsa.key:秘密鍵として使用します。
emoCA/newcerts/xxxx.crt 証明書として使用します。