NginxサーバーのwebサイトををLet’sEncryptでHTTPS化してみた

Posted in tool, blog on November 4, 2020 by Henk Verlinde ‐ 2 min read

NginxサーバーのwebサイトををLet’sEncryptでHTTPS化してみた

はじめに

自サイトを HTTPS 通信できるようにしたかったので、 無料で証明書を発行してくれる Let’s Encrypt を使用して みました。

環境

  1. CentOS 7
  2. nginx

Let’s Encrypt のインストール

  1. git を使用するので、install していない場合は、install してください
[user@123-45-67-89 ~]# sudo yum install git

Letsencrypt をインストール

[user@123-45-67-89 ~]#git clone  https://github.com/letsencrypt/letsencrypt.git
[user@123-45-67-89 ~]# cd letsencrypt
[user@123-45-67-89 letsencrypt]# ./letsencrypt-auto --help

証明書を発行する

[user@123-45-67-89 letsencrypt]# ./letsencrypt-auto certonly --standalone -d 【所有しているドメイン名】

以下エラーが出た場合

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator standalone, Installer None
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for example.com
Cleaning up challenges
Problem binding to port 80: Could not bind to IPv4 or IPv6.

http サーバを起動してる場合起きるエラーです。下記コマンドで nginx を停止しましょう。apache を使用している場合も同様に停止してください。

nginx -s stop

再度実行

[user@123-45-67-89 letsencrypt]# ./letsencrypt-auto certonly --standalone -d 【所有するドメイン】
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator standalone, Installer None
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for wiki.ricedoc.com
Waiting for verification...
Cleaning up challenges

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/【所有するドメイン】/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/【所有するドメイン】/privkey.pem
   Your cert will expire on 2019-08-08. To obtain a new or tweaked
   version of this certificate in the future, simply run
   letsencrypt-auto again. To non-interactively renew *all* of your
   certificates, run "letsencrypt-auto renew"
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

証明書が発行されたか確認しましょう。 以下ディレクトリが存在していたら成功です。

/etc/letsencrypt/live/【所有するドメイン】/

nginx.conf の編集

[user@123-45-67-89 letsencrypt]# vi /etc/nginx/nginx.conf

以下を追加してください。

server {
    listen 443 ssl;
    server_name 【所有するドメイン】;
    ssl_certificate      /etc/letsencrypt/live/【所有するドメイン】/fullchain.pem;
    ssl_certificate_key  /etc/letsencrypt/live/【所有するドメイン】/privke
y.pem;
}

ファイアーウォールの設定

ファイアーウォールが https を許可するように設定します。

[user@123-45-67-89 letsencrypt]# firewall-cmd --add-service=https --zone=public --permanent
[user@123-45-67-89 letsencrypt]# firewall-cmd --reload

サイトに https でアクセスできるか確認してください。
以上です。お疲れ様でした。