OpenSSLを利用した自己証明書を作成する

はじめに

いつも検証する際に自己証明書の作り方を忘れるので、ここにメモしておきます。
今回はOpenSSLをインストールして、ルート証明書とサーバ証明書のチェーン作成までやります。

OpenSSLインストール

OpenSSLのダウンロードページにアクセス

Win32/Win64 OpenSSL Installer for Windows - Shining Light Productions

下にスクロールして、[Win64 OpenSSL vx.x.x]↓の[EXE]をクリック

ダウンロードされたEXEファイルをダブルクリックして実行

以下のような画像が出たら「はい」をクリック。ダウンロードされるのでそれを先にインストール

同意して「Next」

「Next」をクリック

「Next」をクリック

「The OpenSSL binaries(/bin) directory」を選んで「Next」をクリック

「Install」をクリック

「Finish」をクリック

環境変数を変更する

「C:\Program Files\OpenSSL-Win64\bin」を追加して「OK」をクリック

コマンドプロンプトを立ち上げて「openssl version」を入力。応答が返ってくることを確認

事前準備

Cドライブ直下に「cert」というフォルダを作成する

コマンドプロンプトを立ちあげて「cd C:\cert」を入力、ディレクトリを移動する

ルート証明書作成

①秘密鍵作成(パスワード作成が必要)
 openssl genrsa -aes128 -out ca.key 2048

②秘密鍵の中身確認
 openssl rsa -noout -text -in ca.key

③秘密鍵を元にCSR作成
 openssl req -new -key ca.key -out ca.csr

④以下のユーザー情報を入力
Country Name (2 letter code) [XX]:JP
State or Province Name (full name) []:Tokyo
Locality Name (eg, city) [Default City]:Otaku
Organization Name (eg, company) [Default Company Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server’s hostname) []:Test.com
Email Address []: ※何も記入せずエンターを押してください

Please enter the following ‘extra’ attributes
to be sent with your certificate request
A challenge password []: ※何も記入せずエンターを押してください
An optional company name []: ※何も記入せずエンターを押してください

⑤C:\cert配下に証明属性定義ファイルとして「ca.txt」を作成する

⑥「ca.txt」に以下を記載する
# CA証明書用
[ v3_ca ]
basicConstraints = critical, CA:true
keyUsage = keyCertSign, cRLSign
extendedKeyUsage = serverAuth, clientAuth
subjectKeyIdentifier = hash
authorityKeyIdentifier = keyid,issuer

⑦今まで作成したものを使ってルート証明書を作成する
 ※有効期限等は任意

openssl x509 -req -signkey ca.key -extfile ca.txt -extensions “v3_ca” -in ca.csr -out ca.crt -days 3650 -sha256

サーバ証明書作成

①秘密鍵作成(パスワード作成が必要)
 openssl genrsa -aes128 -out server.key 2048

②秘密鍵の中身確認
 openssl rsa -noout -text -in server.key

③秘密鍵を元にCSR作成
 openssl req -new -key server.key -out server.csr

④以下のユーザー情報を入力
Country Name (2 letter code) [XX]:JP
State or Province Name (full name) []:Tokyo
Locality Name (eg, city) [Default City]:Otaku
Organization Name (eg, company) [Default Company Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server’s hostname) []:Test.com
Email Address []: ※何も記入せずエンターを押してください

Please enter the following ‘extra’ attributes
to be sent with your certificate request
A challenge password []: ※何も記入せずエンターを押してください
An optional company name []: ※何も記入せずエンターを押してください

⑤C:\cert配下に証明属性定義ファイルとして「server.txt」を作成する

⑥「server.txt」に以下を記載する
# TLSサーバ証明書用
[ v3_server ]
basicConstraints = critical, CA:false
keyUsage = digitalSignature, keyEncipherment
extendedKeyUsage = serverAuth
subjectKeyIdentifier = hash
authorityKeyIdentifier = keyid,issuer
subjectAltName = @alt_name

[ alt_name ]
DNS.1 = Test.com

⑦今まで作成したものを使ってルート証明書を作成する
 ※有効期限等は任意
 openssl x509 -req -CAkey ca.key -CA ca.crt -CAcreateserial -extfile server.txt -extensions “v3_server” -in server.csr -out server.crt -days 3650 -sha256

PFX作成

サーバ証明書のPFXを作成

①以下コマンドを入力(パスワードの作成が必要)

openssl pkcs12 -export -out server.pfx -inkey server.key -in server.crt -certfile ca.crt

コメント

タイトルとURLをコピーしました