プログラムを中心とした個人的なメモ用のブログです。 タイトルは迷走中。
内容の保証はできませんのであしからずご了承ください。

2018/04/16

OpenSSL を使って自己署名証明書を作成する

event_note2018/04/16 5:45

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

参考 URL