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