はじめに
みなさんこんにちは。サイオステクノロジーのNakayaです。
みなさんは自己証明書を利用する機会はありますでしょうか?
自己証明書は様々な形式があり、システム側で拡張子の指定があったりと、少々面倒があります。
そこで今回は色々な形式で自己証明書を作成するシェルスクリプトを作成したのでそれを紹介しようと思います。
スクリプト
早速ですがスクリプトの全容です。
#!/bin/bash
# PFXキーのパスワード
export PFX_PASS=''
# 証明書の日数
CERT_DAY='7300'
# 証明書のCN
CERT_CN='oreore.dummy.invalid'
# 出力する鍵の名前
FILE_NAME='server'
# key
openssl genrsa 4096 > $FILE_NAME.key
# pem(private)
openssl rsa -in $FILE_NAME.key -outform PEM -out $FILE_NAME-key.pem
#------------------------------------------------------------
# Country Name (2 letter code) [AU]:
# State or Province Name (full name) [Some-State]:
# Locality Name (eg, city) []:
# Organization Name (eg, company) [Internet Widgits Pty Ltd]:
# Organizational Unit Name (eg, section) []:
# Common Name (e.g. server FQDN or YOUR name) []:
# Email Address []:
#
# Please enter the following 'extra' attributes
# to be sent with your certificate request
# A challenge password []:
# An optional company name []:
#------------------------------------------------------------
openssl req -new -x509 -days $CERT_DAY -key $FILE_NAME.key <<EOF > $FILE_NAME.crt
.
.
.
.
.
$CERT_CN
EOF
# cer
cp -pv $FILE_NAME.crt $FILE_NAME.cer
# pfx(pkcs12)
openssl pkcs12 -export -inkey $FILE_NAME.key -in $FILE_NAME.crt -out $FILE_NAME.pfx -passout env:PFX_PASS
# der
openssl x509 -in $FILE_NAME.crt -out $FILE_NAME.der -outform DER
# pem(certificate)
openssl x509 -in $FILE_NAME.der -inform DER -out $FILE_NAME-cert.pem -outform pem
スクリプトの説明
pfxキーのパスワードを定義します。
# PFXキーのパスワード
export PFX_PASS='pfxキーのパスワード'
自己証明書の有効期限の日数を定義します。
7300だと約20年です。
# 証明書の日数
CERT_DAY='7300'
証明書のCNを定義します。
# 証明書のCN
CERT_CN='oreore.dummy.invalid'
スクリプトの実行方法
↑に貼り付けてあるスクリプトをコピーして保存します。今回の例ではファイル名をcreate-self-cert.sh
としています。
vim ./create-self-cert.sh
bash ./create-self-cert.sh
おわりに
このスクリプトで全ての形式を網羅できているわけではないですが、大体よく使われるものに関してはあるかと思います。
よければ使ってもらえると嬉しいです。m(_ _)m