概要
みなさんこんにちはcandleです。今回は取得したvagrantのubuntuで取得したlet’s encryptを実際に使用してみます。
もしも、まだ取得してない人は前回の記事を確認してください。
let’s encryptのssl証明書をvagrantのubuntuを使用して取得する
前提
let’s encryptのssl証明書を取得している
ec2でnginxが動いている
vagrantの中にあるsslをホストPCに持ってくる
取得したsslはvagrantの中にあるので、それを持ってきます。
vagrantのフォルダに移動して、
cd vagrant/lets_encrypt/
立ち上げて
vagrant up
ログインして、
vagrant ssh
sslが収まったディレクトリをホームにコピーして、権限をvagrantに変更しておきます。「hoge.com」のところは取得したドメイン名になります。
sudo cp -r /etc/letsencrypt/archive/hoge.com /home/vagrant/ sudo chown -R vagrant hoge.com
vagrantを出て、ホストPCでsshの情報をファイルにまとめます。
vagrant ssh-config > ssh.config
scpしてsslをホストPCに持ってきます。
scp -rF ssh.config vagrant@default:~/hoge.com .
鍵をホストPCに持ってこれました。
ssl証明書をec2に送信して設置する
次にこのhoge.comのフォルダをec2に送信します。以下のコマンドでいけます。
scp -ri 鍵のパス hoge.com ec2-user@ipアドレス:~/
例えば、こんな感じ
scp -ri ~/.ssh/dd.pem hoge.com ec2-user@127.0.0.1:~/
サーバに移動するとうまくフォルダがホームディレクトリに来ています。
今後はサーバ上で作業をします。
nginxのフォルダに移動します。sslの鍵を収めるフォルダを作成します。
cd /etc/nginx/ sudo mkdir ssl
作成したsslフォルダにホームディレクトリにあるhoge.comを移動させます。
sudo mv /home/ec2-user/hoge.com /etc/nginx/ssl/ cd /etc/nginx/ssl ls
sslの設置ができました。
nginxのssl通信の設定
let’s encryptの認証を行う際に設置したnginx設定ファイルを応用します。letsencrypt.confというフォルダが/etc/nginx/conf.dにあります。無い場合は作成してください。
内容は現在、以下のようになっています。
server { listen 80; server_name hoge.com; location / { root /usr/share/nginx/letsencrypt; index index.html index.htm; } }
ここに先ほど設置したsslの設定を変更して以下のようにします。
server { listen 443; server_name hoge.com; ssl on; ssl_certificate /etc/nginx/ssl/hoge.com/cert1.pem; ssl_certificate_key /etc/nginx/ssl/hoge.com/privkey1.pem; ssl_session_timeout 5m; ssl_protocols SSLv2 SSLv3 TLSv1; ssl_ciphers HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers on; location / { root /usr/share/nginx/letsencrypt; index index.html index.htm; } }
公開されるフォルダ/usr/share/nginx/letsencrytにはまだhtmlファイルがないので、作成します。
touch /usr/share/nginx/letsencrypt/index.html
以下を記述します。
<!doctype html> <html lang="ja"> <head> <meta charset="UTF-8"/> <title>Document</title> </head> <body> <p>this is ssl</p> </body> </html>
保存したら、nginxの構文を確認して、
sudo nginx -t
問題がなければ、再起動します。
sudo service nginx restart
通信が80から443になるので、ec2のセキュリティグループで443のインバウンドが定義されていない場合はawsマネジメントコンソールのセキュリティグループで443を許可してください。
アクセスして、正しくhtmlが表示される確認します。
いい感じですね。
まとめ
ssl通信はseo的にも大きいので、ブログを運営している人は是非導入するとよいと思います。