OpenSSL を使って自己署名証明書を作成します。
環境
- Windows 10 Pro 64bit
OpenSSL のインストール
公式サイトには Windows 用のインストーラーがないので、以下からダウンロードします。
ウィザードに従ってインストールします。
インストールが完了したら、以下のコマンドを入力して確認します。
> openssl version
自己署名証明書の作成
秘密鍵の作成
以下のコマンドは公開鍵暗号方式として RSA を利用した 2048bit の秘密鍵 server.key
を作成しています。
> openssl genrsa -out server.key 2048
証明書署名要求の作成
証明書署名要求 (CSR: Certificate Signing Request) は、認証局に対して自身のサーバーの公開鍵に電子署名(認証局の秘密鍵で署名)してもらうよう要求するメッセージだそうです。
以下のコマンドで、先ほど作成した秘密鍵 server.key
を指定して証明書署名要求 server.csr
を作成しています。
(秘密鍵から勝手に公開鍵を取り出して作成してくれるらしいです)
> openssl req -out server.csr -key server.key -new
するといろいろ聞かれるので、適当に入力します。
Country Name (2 letter code) [AU]:
国名です。日本の場合は JP
と入力します。
State or Province Name (full name) [Some-State]:
都道府県名です。 Tokyo
などと入力します。
Locality Name (eg, city) []:
市区町村名です。
Organization Name (eg, company) [Internet Widgits Pty Ltd]:
組織名です。会社名や団体名などを入力します。
Organizational Unit Name (eg, section) []:
部門名や部署名などです。
Common Name
サイトのURL(SSL/TLS接続の際のURL:FQDN)を入力します。
https://hoge.example.jp/
の場合、hoge.example.jp
と入力します。
Email Address []:
メールアドレスを入力します。
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
証明書署名要求ファイル (server.csr) が出力されます。
サーバー証明書の作成
通常は上記で作成した証明書署名要求 server.csr
を VeriSign などの機関に送付して認証局の秘密鍵で電子署名してもらいますが、今回は自己署名証明書ということで、自分の秘密鍵 server.key
で署名してサーバー証明書を作成します。
以下のコマンドは、有効期限が 10 年間のサーバー証明書 server.crt
を作成しています。
> openssl x509 -req -days 3650 -signkey server.key -in server.csr -out server.crt