SSL自己署名証明書作成メモ

CSRファイル、秘密鍵ファイルを作成し、それらから自己署名証明書を作成する手順です。

ファイル名対応表
ファイル ファイル名
CSRファイル xxxxx.csr
秘密鍵ファイル xxxxx.key
秘密鍵ファイル(パスフレーズ付き) xxxxx.passkey
SSL証明書ファイル xxxxx.crt
SSL中間証明書ファイル xxxxx.chukan



秘密鍵ファイルの作成

まず初めに秘密鍵を作成します。

パスフレーズ無し秘密鍵作成
openssl genrsa -out xxxxx.key 2048

今回の自己証明書はこのパスフレーズ無しの秘密鍵で作成します。

パスフレーズ有り秘密鍵作成
openssl genrsa -des3 -out xxxxx.passkey 2048

このパスフレーズ有りの鍵の場合、
Apacheに設定している場合、
Apacheデーモンの起動毎にパスフレーズを聞かれます。

秘密鍵のパスフレーズ解除方法
openssl rsa -in xxxxx.passkey -out xxxxx.key

パスフレーズ有りで秘密鍵を作成した場合、
このコマンドでパスフレーズの解除ができます。

CSRファイル作成

上記で作成した秘密鍵を元にCSRファイルを作成します。

openssl req -new -key xxxxx.key -out xxxxx.csr


実行後、↓のように対話形式で入力を求められるのでそれぞれ適当に入力します。

Country Name (2 letter code) [GB]:JP
State or Province Name (full name) [Berkshire]:Tokyo
Locality Name (eg, city) [Newbury]:Shibuya-ku
Organization Name (eg, company) [My Company Ltd]:Example Inc.
Organizational Unit Name (eg, section) []:Information Systems Dept.
Common Name (eg, your name or your server's hostname) []:example.com
Email Address []:空エンター

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:空エンター
An optional company name []:空エンター


自己署名証明書作成

通常は上記で作成したCSRファイルをSSL証明書発行会社に送ってSSL証明書を発行してもらうのですが、
単に暗号化通信を行いたい場合は自作出来ます。
いわゆるオレオレSSL証明書の作成です。

openssl x509 -in xxxxx.csr -out xxxxx.crt -req -signkey xxxxx.key -days 365

※例では有効期限は「365」日です。

ApacheでSSL証明書関連ファイルを指定する場合の書き方

上記で作成した

  • 秘密鍵ファイル
  • SSL証明書ファイル
  • 中間証明書ファイル(SSL証明書発行会社指定されたもの) ※今回は自作証明書なので不要

をApacheの設定ファイルで指定する例です。

SSLCertificateFile xxxxx.crt # 証明書
SSLCertificateKeyFile xxxxx.key # 秘密鍵
#SSLCertificateChainFile xxxxx.chukan # 中間証明書