SSL証明書を得てhttpsを使えるようにする

【SSL証明書を得てhttpsを使えるようにする】

※ certrootで証明書を得るためには Port80で
  アクセス可能にしておかないとダメ
  当然自動更新も Port80 が使用されるため 常に通して
  置く必要がある
  但し、得た証明書はポート番号に関係なく使用可能
  そのため、ssl通信においては、Portを自由に設定できる

① 機能のインストール
sudo apt install certbot

② 証明書をとっとく場所を確保
たぶん、owner は www-data にしておいたほうがよい
例えば /usr2/local/ssl
そして、このディレクトリを /.well-known/acme-challenge/
でアクセスできるようにしておく ※証明書の自動更新に必要らしい
 《例》
location /.well-known/acme-challenge/ {
root /usr2/local/ssl;
}
この場合 http://var.foo.com/.well-known/acme-challenge/
のファイル位置は /usr2/local/ssl/.well-known/acme-challenge/index.html
となるので注意

③ 証明書を発行する練習(一日にチャレンジでき回数制限があるため)
sudo certbot certonly –webroot –dry-run

Enter email address:

メールアドレスを入力

(Y)es/(N)o:

Y を入力

  (Y)es/(N)o:
N を入力

  Please enter in your domain name(s):
複数のURLを設定できるみたいですが… var.foo.com 形式で入力

  Input the webroot for var.foo.com:
ここには例の場合 /usr2/local/ssl と入れる

  • The dry run was successful.

とくればいいみたい

④ 練習に成功したら、証明書を受ける

sudo certbot certonly –webroot

証明書は
/etc/letsencrypt/live/var.foo.com に保存される

⑤ 以下の設定をnginxに

# SSL証明書の設定
ssl_certificate /etc/letsencrypt/live/var.foo.com/fullchain.pem;
# SSL秘密鍵の設定
ssl_certificate_key /etc/letsencrypt/live/var.foo.com/privkey.pem;
# SSLのプロトコルを指定
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;