自己署名のSSLサーバー証明書の作成方法を書きます。
前提条件として OpennSSL は普通に使える環境であるものとします。
■ 自己署名のSSLサーバー証明書とは
通常 SSLサーバー証明書は然るべき認証局(VeriSignとかジオトラストとか)が発行し、それには電子署名が施されており、コモンネーム(運用するFQDN=フルドメイン名)が確かなものであると証明します。
この電子署名を認証局にやってもらわずに自分で OpennSSL の機能で施すことが自己署名です。
自己署名の証明書は信頼性に欠けるとしてブラウザなどのクライアントソフトウェアではエラーや警告メッセージが表示され、フィッシングサイト、怪しいサイトであるような印象を与えます。
しかしながらデータの暗号化という観点だけを見れば認証局が署名したものと全く同等であり、暗号化の観点でセキュリティは劣りません。
ですからデータの暗号化が目的なだけなら自己署名でよい場合もあります。
■ 自己署名のSSLサーバー証明書 作成方法
秘密鍵と証明書を一度に作成します。
# openssl req -new \ -newkey rsa:2048 \ -days 3650 \ -x509 \ -nodes \ -keyout servername.key \ -out servername.crt
申請情報の入力を求められます。
すべて半角英数字で入力します。
Country Name ※国を示す2文字のISO略語( JP 等) State or Province Name ※組織が置かれている都道府県 Locality Name ※組織が置かれている市区町村 Organization Name ※組織の名称 Organization Unit Name ※組織での部署名 (ハイフン - でも可) Common Name ※運用するURLのFQDN www.domain.com Email Addres 入力不要 A challenge password 入力不要 An optional company name 入力不要
※印は必須です。
Common Name はドメイン名ではなく運用するURLのhttps://のホスト名です。
www ありの運用をする場合は www を省力しないように注意します。
メールの SSL/TLS に使用する場合は完全なメールサーバー名です。
※有効期限を延ばしておくのは1つのポイントです。
自己署名なのだから有効期限も自由自在ですし毎年作りなおすのは面倒です。
-days オプションで有効期限を日数で指定します。 3650日は約10年になります。