事前に環境構築を実施しておく必要があります。 ここでは、ルート認証局用の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 は証明書のエンコード形式を表します。