事前に環境構築を実施しておく必要があります。 ここでは、ルート認証局用のCA証明書作成方法を記載します。 中間認証局用 CA証明書作成については、証明書署名要求(CSR)作成と署名を参照ください。
次のコマンドを実行します。 ★<>の部分は適宜変更のこと。
#
# 1. 設定
#
# SUBJ=<サブジェクト>
# 次に記す必要な値を続けて指定します。
# /C=Country [国名] (日本の場合 JP)
# /ST=State or Province [都道府県名]
# /L=Locality [市町村名]
# /O=Organization [組織名]
# /OU=Organizational Unit [部門名]
# /CN=Common Name [コモンネーム]
# 例) "/C=JP/O=Ehobby/CN=Ehobby Root CA"
#
# DIR=<生成先ディレクトリ>
#
# DAYS=<証明書の有効日数>
#
# NEWKEY=<公開キー>
# 次の何れかの指定が可能です。
# rsa:[bit数]
# dsa:[file]
# ca:[file]
# 通常 rsa:2048 が使用されます。
# (default: rsa:2048)
#
# HASH=<署名ハッシュアルゴリズム>
# 次の何れかの指定が可能です。
# sha256 (SHA2) [推奨]
# sha1 (SHA1)
# 他、openssh dgst -h にて表示されるハッシュを指定可能です。
# 通常、sha256 または sha1 が使用されます。
# (default: sha256)
#
SUBJ=<サブジェクト>
DIR=ca
DAYS=720
NEWKEY=rsa:2048
HASH=sha256
#
# 2. 秘密鍵と証明書を生成
# ★パスフレーズを問われるので、入力してください。
# ★パスフレーズは、署名時に必要となるので忘れないようにしてください。
openssl req -new \
-x509 \
-config ./openssl.cnf \
-out ${DIR}/rootca.pem \
-keyout ${DIR}/private/cakey.pem \
-extensions cert_rootca \
-days ${DAYS} \
-newkey ${NEWKEY} \
-${HASH} \
-subj "${SUBJ}"
#
# 3. 秘密鍵の権限を自分しかアクセスできないように変更
chmod 600 ca/private/cakey.pem
#
# 4. der 形式ファイルの生成 (ブラウザ等に取り込むための形式)
openssl x509 -inform pem -in ca/${CERT}.pem -outform der -out ca/${CERT}.der
次のコマンドで証明書の内容を確認できます。
openssl x509 -text -noout -in ca/${CERT}.pem
拡張子 .pem, .der は証明書のエンコード形式を表します。