Close icon
2018月06日28日

Let's EncryptのSSL証明書を使ってみた

Let's Encryptについて

Let's Encryptは2016年4月に正式に開始された認証局で、無料で利用できるSSL証明書を提供しています。
Let's Encryptのコマンドライン、certbotを使用するとSSL証明書の取得や更新が行え自動化できるようになります。

環境

  • サーバー : さくらのVPS(CentOS7)
  • Webサーバ:nginx

Let's Encryptで取得したSSL証明書を開発用のサーバーにインストールしてみます。

certbotをインストール

証明書の取得や更新で使用するcertbotをインストールします。

certbot.eff.orgの手順を参考にし作業を進めてみます。
NginxとCentOS7なので、Nginx on CentOS/RHEL 7を参考に進めました。

Certbotをインストール

$ sudo yum install python2-certbot-nginx

証明書の取得

certbotコマンドで証明書を取得

$ sudo certbot --nginx

これを実行するとNginxの設定を自動的に編集しすぐにhttpsでアクセスできるようになります。

こんな感じ

$ sudo certbot --nginx

We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:

  #1) Respect the privacy of others.
  #2) Think before you type.
  #3) With great power comes great responsibility.

[sudo] password for kuru: 

ログイン中のユーザーのパスワードを入力する。

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator nginx, Installer nginx
Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel): 

メールアドレスを入力する。

Starting new HTTPS connection (1): acme-v01.api.letsencrypt.org

-------------------------------------------------------------------------------
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://acme-v01.api.letsencrypt.org/directory
-------------------------------------------------------------------------------
(A)gree/(C)ancel: 

利用規約に同意する。

-------------------------------------------------------------------------------
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about EFF and
our work to encrypt the web, protect its users and defend digital rights.
-------------------------------------------------------------------------------
(Y)es/(N)o: 

どちらか選択する。

Which names would you like to activate HTTPS for?
-------------------------------------------------------------------------------
1: hoge1.atotok.jp
2: hoge2.atotok.jp
3: hoge3.atotok.co.jp
-------------------------------------------------------------------------------
Select the appropriate numbers separated by commas and/or spaces, or leave input
blank to select all options shown (Enter 'c' to cancel): 1

nginxに設定されているドメインが表示されるので、SSL証明書を設定したいドメインを選択する。

これで完了!
httpsでアクセスできるになりました。
簡単!

/etc/nginx/conf.dの設定ファイルを確認するとssl関係の設定が追加されています。

  listen 443 ssl; # managed by Certbot
  ssl_certificate /etc/letsencrypt/live/[選択したドメイン名]/fullchain.pem; # managed by Certbot
  ssl_certificate_key /etc/letsencrypt/live/[選択したドメイン名]/privkey.pem; # managed by Certbot
  include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
  ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot

手動でNginxの設定を変更したい場合は、 certonlyを指定して実行します。

  $ sudo certbot --nginx certonly

証明書の更新

次のコマンドで証明書の自動更新をテストできます。

$ sudo certbot renew --dry-run

次のコマンドを実行すると更新が必要な証明書を更新します。

$ sudo certbot renew

Let’s Encryptの証明書は90日間と期限が短いのでcronなどで自動更新するように設定します。



アトトックラボとは

株式会社アトトックメンバー が技術の話、デザインの話、キャラクターの話、ときどき脱線してガジェットの話やライフハックの話など好きなことを書いています。


連載記事


最近の記事


タグ