#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)
トップ   差分 バックアップ リロード   一覧 検索 最終更新   ヘルプ   最終更新のRSS