SSL証明書発行を自動化しコマンド化
6924 ワード
やったこと
頻繁にSSL証明書を作成する必要があったので、いちいち入力するのは手間ですしコマンド化しました。
コマンド化手順→ 【超簡単】1分で独自コマンドを作ってみる(Mac・Linux)
セットアップ
下記のシェルスクリプトを mycsc
という名前でコマンド化しておく
(コード上部の情報を自分のものに書き換えてください)
mycsc.sh
#!/bin/bash
#mycsc csc = create SSL Sertificate
#---実行前に下記の情報を入力してください(全て英語で)--------------------
COUNTRY="国 日本ならJP"
PROVINCE="都道府県"
LOCALITY="市町村"
ORGANIZATION="会社名"
ORGANIZATION_UNITNAME="所属部署名"
COMMON_NAME="自分の名前"
EMAIL="メールアドレス"
#---------------------------------------------------
#すでに.sslディレクトリが存在すれば削除
if [[ -e ./.ssl ]]; then
rm -r .ssl
fi
#.sslディレクトリ作成 & 移動
mkdir .ssl && cd .ssl
#20文字のパスワード生成
password=`openssl rand -base64 12 | fold -w 20 | head -1`
#opensslコマンドを実行し、情報を自動入力する
expect -c "
set timeout 3
spawn openssl req -x509 -newkey rsa:2048 -keyout keytmp.pem -out cert.pem -days 365
expect \"Enter PEM pass phrase:\" {
send \"${password}\n\"
exp_continue
} \"Country Name\" {
send \"${COUNTRY}\n\"
exp_continue
} \"State or Province Name\" {
send \"${PROVINCE}\n\"
exp_continue
} \"Locality Name\" {
send \"${LOCALITY}\n\"
exp_continue
} \"Organization Name\" {
send \"${ORGANIZATION}\n\"
exp_continue
} \"Organizational Unit Name\" {
send \"${ORGANIZATION_UNITNAME}\n\"
exp_continue
} \"Common Name\" {
send \"${COMMON_NAME}\n\"
exp_continue
} \"Email Address\" {
send \"${EMAIL}\n\"
exp_continue
} timeout {
exit 1
}
"
if [ $? -eq 1 ]; then
echo "入力がタイムアウトしkeytemp.pemを作成できませんでした。情報が正しいか確認してください"
exit
fi
#opensslコマンドを実行し、情報を自動入力
expect -c "
set timeout 3
spawn openssl rsa -in keytmp.pem -out key.pem
expect \"Enter pass phrase for keytmp.pem\" {
send \"${password}\n\"
exp_continue
} timeout {
exit 1
}
"
if [ $? -eq 1 ]; then
echo "入力がタイムアウトしkey.pemを作成できませんでした。keytemp.pemとcert.pemを削除します"
rm keytemp.pem cert.pem
exit
fi
#keytemp.pemを削除し完了
rm keytmp.pem
echo "SSL証明書発行完了しました!"
使い方
SSL証明書を発行したいディレクトリに移動し、 mycsc
を叩くだけ
Author And Source
この問題について(SSL証明書発行を自動化しコマンド化), 我々は、より多くの情報をここで見つけました https://qiita.com/KazukiOkada/items/41ee99b604ee7b13d71c著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .