opensslでオレオレ証明書(pfxファイル)を作成した話


はじめに

  • HTTPS化するのに証明書が必要になったが、Windowsでpfxファイルを作成するのに苦労したので手順をメモ

事前準備

  • クライアントPC(Windows)

参考資料

  • 以下の先生の記事を参考しながら、進めます。先生に感謝。

オレオレ証明書をopensslで作る(詳細版)

作業の流れ

  1. opensslのインストール
  2. 秘密鍵(Private Key)の作成
  3. 証明書署名要求(CSR : Certificate Signing Request)の作成
  4. サーバ証明書の作成
  5. pfxファイルのエクスポート

【手順1】opensslのインストール

  • 以下URLを参考にインストール

Win32 opensslのインストール手順

Shining Light Productions (opensslのダウンロード)

【手順2】秘密鍵(Private Key)の作成

  • 以下のコマンドを順に実行
# 秘密鍵(Private Key)の作成
$ openssl genrsa 2048 > server.key

【手順3】証明書署名要求(CSR : Certificate Signing Request)の作成

  • 以下のコマンドを順に実行
# 証明書署名要求(CSR : Certificate Signing Request)の作成
$ openssl req -new -key server.key > server.csr

You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:
State or Province Name (full name) [Some-State]:
Locality Name (eg, city) []:
Organization Name (eg, company) [Internet Widgits Pty Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (e.g. server FQDN or YOUR name) []:
Email Address []:

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

Note:本当ならちゃんと入力すべきだが、オレオレ証明書の場合は、全てENTERで。

【手順4】サーバ証明書の作成

  • 以下のコマンドを順に実行
# サーバ証明書の作成
$ openssl x509 -days 3650 -req -signkey server.key < server.csr > server.crt

Signature ok
subject=/C=AU/ST=Some-State/O=Internet Widgits Pty Ltd
Getting Private key

【手順5】pfxファイルのエクスポート

  • 以下のコマンドを順に実行
# pfxファイルのエクスポート
$ openssl pkcs12 -export -inkey server.key -in server.cer -out server.pfx

まとめ

  • オレオレ証明書ファイル(pfxファイル)ができた!
  • opensslの使い方はたくさん出てくるが、pfxファイルまで作成する手順に辿り着けなかったので備忘メモ。
  • っていうか、この面倒な手順なんなの??、、、と思っていたらLet's Encryptなる救世主がいたんですね。オレオレ証明書だとダメな場合もあるので、素直にこっちにすれば良かったかも。