文系プログラマによるTIPSブログ

文系プログラマ脳の私が開発現場で学んだ事やプログラミングのTIPSをまとめています。

シェルスクリプトでオレオレ証明書を自動生成する

このスクリプト、ちょいちょい必要になります。


f:id:treeapps:20180424102046p:plain

ansibleの勉強記事を続けている訳ですが、nginxをインストールする時、初期インストール状態でSSLが動いて欲しいので、今回オレオレ証明書を自動生成するシェルスクリプトを用意してみました。

ansibleでapacheやnginxをインストールついでに証明書を作ってしまい、それを読み込ませるconfを配置すれば、初期表示時にSSLが表示できるようになります!!

オレオレ証明書の自動生成スクリプト

#!/bin/sh

#------------------------------------------------------------
# 秘密鍵を生成
#------------------------------------------------------------
openssl genrsa 2048 > server.key

#------------------------------------------------------------
# 証明書署名要求を生成
# 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 -key server.key <<EOF > server.csr
JP
Tokyo
Neet Town
Neet Company
Neet Section
192.168.33.21



EOF

#------------------------------------------------------------
# サーバ証明書を生成
#------------------------------------------------------------
openssl x509 -days 3650 -req -signkey server.key < server.csr > server.crt

なんてことはない、ヒアドキュメントで無理やり入力しています。
とりあえず有効期限を3650日、10年を設定しています。

nginx/conf.d/virtual.conf

後は自動生成されたファイルを読み込むだけです。

    listen {{listen_https_port}};
    ssl on;
    ssl_certificate /etc/nginx/server.crt;
    ssl_certificate_key /etc/nginx/server.key;

証明書を確認してみる

以下のようにニート証明書ができました!
f:id:treeapps:20140624232554p:plain


誰がニートだコルァァァァァァァァ!!!!


お前のことだよ