- 追加された行はこの色です。
- 削除された行はこの色です。
#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)