OpenSSL メモ
fuji44
OpenSSL メモ
ユースケース
秘密鍵と公開鍵をPKCS#12(pfx)形式に変換する
既に秘密鍵(key)、公開鍵(証明書ともいう。crt or cer)を持っている場合、OpenSSLでPFXファイルに変換できます。
秘密鍵、公開鍵形式からPKCS#12(pfx)形式への変換方法
openssl pkcs12 -export -inkey sample_private.key -in sample.crt -out sample.pfx
CSRの内容を確認する
openssl req -noout -text -in sample.csr
CAを設定する
今回はCAのディレクトリ構造を一から作る。
mkdir ca
mkdir ca/certs
mkdir ca/crl
mkdir ca/newcerts
mkdir ca/private
touch ca/index.txt
echo "01" > ca/serial
次に元のコンフィグファイルをコピーしてコンフィグファイルを作る。
cp /usr/lib/ssl/openssl.cnf ./
CAにかかわる部分だけ書き換えた。詳細は後述。
- 各パスを直前に作成したものに変更。
certificate
とprivate_key
は事前に作成していたCA用の証明書(公開鍵)と秘密鍵を指定する。- SANなどX509のパラメータを有効にしたい場合は、
copy_extensions = copy
をコンフィグファイルで有効にしておく。
これでとりあえずCAは使えるようになる。 openssl ca
コマンド実行時に作成したコンフィグファイルを指定すること。
[ CA_default ]
dir = ./ca # Where everything is kept
certs = $dir/certs # Where the issued certs are kept
crl_dir = $dir/crl # Where the issued crl are kept
database = $dir/index.txt # database index file.
new_certs_dir = $dir/newcerts # default place for new certs.
certificate = $dir/ca-maruino.crt # The CA certificate
serial = $dir/serial # The current serial number
crlnumber = $dir/crlnumber # the current crl number
crl = $dir/crl.pem # The current CRL
private_key = $dir/private/ca-maruino.key# The private key
x509_extensions = usr_cert # The extensions to add to the cert
name_opt = ca_default # Subject Name options
cert_opt = ca_default # Certificate field options
copy_extensions = copy
default_days = 3650 # how long to certify for
default_crl_days = 30 # how long before next CRL
default_md = default # use public key default MD
preserve = no # keep passed DN ordering
policy = policy_match
...
[ usr_cert ]
basicConstraints = CA:FALSE
nsComment = "OpenSSL Generated Certificate"
subjectKeyIdentifier = hash
authorityKeyIdentifier = keyid,issuer
CSRを署名する方法
事前にCAの設定を済ませていないと実行できない。
openssl ca -config openssl.cnf -in sample.csr -days 365 -out sample.crt
デフォルトのコンフィグファイルを使用する場合は、 -config
は必要ない。
国、都道府県などが認証局と一致しているかを見ない場合、 -policy policy_anything
を指定する。
資料
コマンドリファレンス
解説
- フォーマットについての解説。とても分かりやすい。
- 自己証明の流れを解説。CA環境の作り方、SANへの対応が参考になった。
- CAディレクトリ構造の作り方が参考になった。
- 各コマンドの細かな解説が参考になった。