Open4
OpenSSL
# 秘密鍵生成(パスフレーズで暗号化)
openssl genrsa -des3 -out example.key 2048
# 秘密鍵生成(パスフレーズなし)
openssl genrsa -out example.key 2048
# CSR 生成
openssl req -new -key example.key -out example.csr -subj '/C=JP/ST=Tokyo/L=Bunkyo-ku/O=Example Org/OU=Example Org Unit/CN=Example Org'
# CSR nonaiyoukakuninn
openssl req -noout -text -in apple-wallet.csr
# 証明書の内容確認
openssl x509 -inform DER -in example.cer -text -noout
# 以下で subject だけ取り出せる
openssl x509 -inform DER -in example.cer -subject -noout
# 証明書を PEM 形式で出力
openssl x509 -inform DER -in example.cer -out example.crt && openssl x509 -in example.crt -out example.pem -outform PEM
# 暗号化された秘密鍵の復号
openssl rsa -in example.key -passin pass:{password}
# もしくは暗号化されたまま以下でもいける(smime の場合)
openssl smime -binary -sign -signer certificate.pem -inkey privatekey.pem -in manifest.json -out signature -outform DER -passin pass:{password}
コード署名の場合の CSR の Common Name は Organization Name で OK(SSL/TLS 証明書なら FQDN だけど)
mac で $ openssl version 叩くと以下のように表示されるので、ローカルでは LibreSSL が使われている様子。
openssl version
# LibreSSL 2.8.3