#navi2(RaspberryPi/証明書,toc,prev,next) ---- #contents ---- * CA証明書作成 [#ba17c02e] 事前に [[RaspberryPi/証明書/環境構築]] を実施してください。 ** 秘密鍵生成 [#g300a382] openssl genrsa -sha256 -out private/privkey.pem 2048 |INPUT | - | |OUTPUT |private/privkey.pem | 次のコマンドを実行します。 &color(red){''★<>の部分は適宜変更のこと。''}; # # 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 genrsa --help **生成された証明書の確認 [#zbedddda] 次のコマンドで証明書の内容を確認できます。 openssl x509 -text -noout -in ca/${CERT}.pem ** CSR生成 [#ue978134] openssl req -new -config conf/openssl.cnf \ -key private/privkey.pem \ -days 730 \ -sha256 \ "/C=JP/O=Ehobby/CN=Ehobby Root CA" \ -out request.csr ** 参考情報 [#qfc641fb] ***証明書のエンコード形式について [#m5616f0c] 拡張子 .pem, .der は証明書のエンコード形式を表します。 -DER (Distinguished Encoding Rules) ASN.1 のバイナリエンコード方式の1つ。 .cer, .crt の拡張子となっている場合があります。 -PEM (Privacy Enhanced Mail) BASE64にてエンコードした形式。 さまざまな種類の X.509 v3 ファイルに使用されます。 |INPUT |private/privkey.pem | |OUTPUT |request.csr | ***証明書の種類について [#r20c2e82] -CRT 証明書には、CRT拡張子が使用されます。証明書は、バイナリのDERまたはASCIIのPEMとしてエンコードできます。 -CER CRTの代替形式。 -KEY 公開鍵と秘密鍵の両方のPKCS#8鍵に使用されます。 キーはバイナリDERまたはASCIIのPEMとしてエンコードできます。 オプションの詳細については、下記コマンドで確認ください。 openssl req --help ** 署名(自己署名) [#zac989fa] openssl x509 -req -sha -extfile conf/openssl.cnf \ -extensions v3_ca \ -days 730 \ -out cacert.pem \ -in request.csr \ -signkey private/privkey.pem openssl x509 -inform pem -in cacert.pem \ -outform der -out cacert.crt |INPUT |private/privkey.pem, request.csr | |OUTPUT |cacert.pem , cacert.crt | オプションの詳細については、下記コマンドを確認ください。 openssl x509 --help ---- #navi2(RaspberryPi/証明書,toc,prev,next)