Edited at

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


はじめに


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


事前準備


  • クライアント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なる救世主がいたんですね。オレオレ証明書だとダメな場合もあるので、素直にこっちにすれば良かったかも。