OpenSSLによる自己署名証明書の作成

Windows版OpenSSLのインストール

 Windows版のOpenSSLをインストールします。 OpenSSLのオフィシャルサイトでは、ソースのみ配布されているので、Windows版のインストーラー配布サイトからダウンロードします。

 Windows版OpenSSL ダウンロードサイトを開き、 「Download Win32/Win64 OpenSSL」で、 「Win64 OpenSSL v3.0.5 Light」「MSI」を選択します。
 ダウンロードした Win64OpenSSL_Light-3_0_5.msi を実行してインストールします。
 設定ファイル(openssl.cnf)は、C:\Program Files\Common Files\SSL\openssl.cnf に格納されていますので、確認しておくと良いでしょう。
 OpenSSLでは、.pemや.crtなどの拡張子が使われることが多いですが、ここではWindows環境で良く使われる拡張子を利用しています。

自己署名証明書

秘密鍵(.key)の作成

 startメニューの「OpenSSL」「Win64 OpenSSL Command Prompt」を起動し、下記のコマンドを実行します。
 下記の場合、ash.keyという秘密鍵が格納されたファイルが作成されます。

C:\Users\joe> openssl genrsa -out ash.key

証明書署名要求(.csr)の作成

 秘密鍵(.key)から、証明書署名要求(.csr)を作成します。
 証明書に格納される作成者情報を対話形式で入力しますが、Common Name以外は、省略しても構いません。

C:\Users\joe> openssl req -new -key ash.key -out ash.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]:JP
State or Province Name (full name) [Some-State]:Ishikawa pref
Locality Name (eg, city) []:Kanazawa city
Organization Name (eg, company) [Internet Widgits Pty Ltd]:ASH corporation
Organizational Unit Name (eg, section) []:
Common Name (e.g. server FQDN or YOUR name) []:ash.jp
Email Address []:info@ash.jp

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

自己署名証明書(.cer)の作成

 証明書署名要求(.csr)に捺印することで、X.509形式の自己署名証明書(.cer)を作成します。 デフォルト有効期間は1ヶ月程度なので、10年(3650日)ぐらいにしておくと、手間が減ります。

C:\Users\joe> openssl x509 -req -days 3650 -signkey ash.key -in ash.csr -out ash.cer
Certificate request self-signature ok
subject=C = JP, ST = Ishikawa pref, L = Kanazawa city, O = ASH corporation, CN = ash.jp, emailAddress = info@ash.jp

PKCS#12形式の証明書

 PKCSは、Public Key Cryptography Standardの略で、公開鍵証明書および秘密鍵を、安全に保存または転送するために使用されるファイル形式のことで、.pfxや.p12という拡張子が使われます。 データ内には秘密鍵が格納されていますので、厳重に保管する必要があります。 他人に渡してしまうと、成りすましされてしまうことになります。
 ここでは、マクロを作成するパソコンへのインストールに使っています。

PKCS#12形式の証明書(.pfx)の作成

 秘密鍵(.key)と自己署名証明書(.cer)から、PKCS#12形式の証明書(.pfx)を作成します。

C:\Users\joe> openssl pkcs12 -export -inkey ash.key -in ash.cer -out ash.pfx
Enter Export Password:
Verifying - Enter Export Password:

PKCS#12形式の証明書(.pfx)のインストール

 PKCS#12形式の証明書(.pfx)のインストールは、マクロを作成するパソコンでのみ行います。

証明書(*.pfx)をダブルクリック
「証明書のインストール」を行う
「現在のユーザ」を選択する
「証明書の種類に基づいて、自動的に証明書ストアを選択する」を選択する
自動の場合「個人」「証明書」にインストールされる

証明書の確認

 Windows環境で証明書の確認するツールとして、certmgrがあります。
 起動方法は、ファイル名を指定して実行(Win+r)で、「certmgr.msc」を指定します。
 インストールした証明書は、「個人」「証明書」に格納されています。

証明書管理画面(certmgr)

 証明書管理画面で、証明書を選択してエクスポートすると、自己署名証明書(.cer)ファイルを作成することができます。このエクスポートした.cerファイルは、OpenSSLで作成した.cerファイルと全く同じ内容です。


Copyright (C) ASH Joe Masumura