SSL証明書の更新がメンドイので可能な限り楽にCSRを作るためのスクリプトです。
- パスワードのファイル
- CSR
- キー
- ノーパスのキー
が作成されます。
作業ディレクトリを/tmp/ssl/とします
cd /tmp/ssl/ mkdir files mkdir scripts; cd $_ vim createcsr.sh
#!/bin/sh domain=$1 if [ "$domain" = "" ]; then echo "usage: $0 {domain}" exit 1 fi param=`openssl s_client -connect ${domain}:443 -showcerts < /dev/null 2>/dev/null | grep subject | sed -e 's/subject=//g'` if [ "$param" = "" ]; then echo "can\'t get ssl params" exit 1 fi HOME=/tmp/ssl BASE=${HOME}/files/${domain} mkdir -p ${BASE} mkpasswd -l 12 > ${BASE}/${domain}.pass openssl genrsa -des3 -passout file:${BASE}/${domain}.pass -out ${BASE}/${domain}.key 2048 -sha256 openssl req -batch -new -sha256 -key ${BASE}/${domain}.key -out ${BASE}/${domain}.csr -passin file:${BASE}/${domain}.pass -subj "$param" openssl rsa -in ${BASE}/${domain}.key -passin file:${BASE}/${domain}.pass -out ${BASE}/${domain}.key.nopass
キーの作成のところで -passout になっているのは誤植ではありません。コマンドの流れからいって -passin だろと思うのですが逆にpassinがありません。opensslが改修されればpassinになるのかもしれませんね。
csr確認は
openssl req -text -noout -in yourfilename.csr
でおこないます。