自己証明書をprod環境で使用することはまずないですが、stg環境やdev環境、閉じられたcms環境やbackoffice環境だと、費用削減のために自己証明書を使用していることがわりとまだあります。
AWS環境だと、ACMでDV証明書を無料で作れるからいいんですけどね。
ということで、自己証明書の作成手順です。
変数定義
ここで各々必要な情報を変数に詰め込んじゃってください。
そうすればあとは基本的にコピペでいけると思います。
# 日付設定
export ssldate={yyyymmdd}
# ドメイン名設定
export ssldom={ドメイン名}
# bit数の指定
export sslbit=2048
# ユーザ名の指定
export user={ユーザ名}
メイン作業
ssl用ディレクトリの作成&移動
$ mkdir -p /home/$user/ssl
$ cd /home/$user/ssl/
$ chown $user:$user /home/$user/ssl/
$ cd /home/$user/ssl/
シード値の生成
$ date >> mkssl.log; openssl md5 * > rand.dat
秘密鍵の作成
$ openssl genrsa -rand rand.dat $sslbit > $ssldom.$ssldate.key
CSRの作成
$ openssl req -new -key $ssldom.$ssldate.key -out $ssldom.$ssldate.csr
# 情報をいろいろ聞かれますが、自己証明書なのでCommon Name以外は空Enterで問題ありません。
Country Name (2 letter code) [XX]:
State or Province Name (full name) :
Locality Name (eg, city) [Default City]:
Organization Name (eg, company) [Default Company Ltd]:
Organizational Unit Name (eg, section) :
Common Name (eg, your name or your server's hostname) :{ドメイン名}
Email Address :
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password :
An optional company name :
CSRの確認
$ openssl req -noout -text -in $ssldom.$ssldate.csr | head -8
自己証明書の作成(期限は約10年(3650日)とします)
$ openssl x509 -in $ssldom.$ssldate.csr -sha256 -out $ssldom.$ssldate.crt \
-req -signkey $ssldom.$ssldate.key -days 3650
以上です。