joppot

コピペで絶対動く。説明を妥協しない

サーバ

vagrantで取得したlet’s encryptのssl証明書をec2のnginxで使用する

投稿日:2016年1月14日 更新日:

Pocket

ssl_nginx_ec2_top_thumb

概要

みなさんこんにちはcandleです。今回は取得したvagrantのubuntuで取得したlet’s encryptを実際に使用してみます。
もしも、まだ取得してない人は前回の記事を確認してください。
let’s encryptのssl証明書をvagrantのubuntuを使用して取得する

前提

let’s encryptのssl証明書を取得している
ec2でnginxが動いている

SPONSORED LINK


vagrantの中にあるsslをホストPCに持ってくる

取得したsslはvagrantの中にあるので、それを持ってきます。
vagrantのフォルダに移動して、

cd vagrant/lets_encrypt/

go_to_lets_encrypt_folder

立ち上げて

vagrant up

ログインして、

vagrant ssh

sslが収まったディレクトリをホームにコピーして、権限をvagrantに変更しておきます。「hoge.com」のところは取得したドメイン名になります。

sudo cp -r /etc/letsencrypt/archive/hoge.com /home/vagrant/
sudo chown -R vagrant hoge.com

cp_ssl_paper_vagrant_root

vagrantを出て、ホストPCでsshの情報をファイルにまとめます。

vagrant ssh-config > ssh.config

scpしてsslをホストPCに持ってきます。

scp -rF ssh.config vagrant@default:~/hoge.com .

yatta_i_got_ssl

鍵をホスト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:~/

サーバに移動するとうまくフォルダがホームディレクトリに来ています。

hogehoge_com_data

今後はサーバ上で作業をします。
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

hogecom_ssl_package

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;
    }
}

ssl_config

公開されるフォルダ/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が表示される確認します。

hoge_com_ssl_t

いい感じですね。

まとめ

ssl通信はseo的にも大きいので、ブログを運営している人は是非導入するとよいと思います。

スポンサードリンク

「為になったなぁ」と思ったら、シェアお願いします。

-サーバ
-, ,

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

apacheのmod_rewriteでphpのGETパラメータのurlを書き換える

概要 みなさんこんにちはcandleです。今回はphpでgetでパラメータを受け取る際のurlの書き換えです。 例えば、phpよくあるのがこのようなurlではないでしょうか。 http://local …

gitのリモートプライベートリポジトリを公開鍵認証を使って環境構築する

概要 みなさんこんにちはcandleです。 今回はgitのリモートプライベートリポジトリを作ってみたいと思います。 リモートリポジトリと言えば、Githubとかbitbucketが有名だと思います。会 …

MAMPでphpのshell_execを使用してunixコマンドを実行できない場合の対処(imagemagick,convert)

概要 みなさんこんにちはcandleです。今回はちょっと問題が起きてshell_execがうまくいかないときのトラブルシューティングをまとめます。 私はMAMPをバージョンアップする前は、phpのsh …

CentOS6.5にcomposerをインストールする

概要 みなさんこんにちはcandleです。cakephpではphpのライブラリ管理ツールcomposerと連帯して、便利に必要なライブラリを導入できます。 例えば、cakephpの標準テストツールph …

let’s encryptのssl証明書をvagrantのubuntuを使用して取得する

概要 みなさんこんにちはcandleです。2014年の後期にmozillaあたりが主導して、無料のssl証明書作ろうという動きがありました。ついに去年の12月にβ版がでたので、早速試してみました。 ち …

  • English
  • 日本語

プロフィール


ベンチャー企業のCTOをやってます。大学時代にプログラミングを始め、javaから入門し、C++へて、PHPへと進み、会社ではRailsを使用。自動化が大好きなプログラマー

スポンサードリンク

アーカイブ