#6 サイトのSSL化

icon Y.Kobe が 2024/07/07 9:44 に投稿 ( icon Administrator が 2024/09/09 21:47 に編集 <更新履歴> )

SSLとは?

 SSL(Secure Sockets Layer)は、ホームページを格納しているサーバーとブラウザ間の通信を暗号化するための仕組みです。
 今回は無料で SSL 証明書を発行・更新できるCertbotというサービスを利用して構築します。

SSL導入手順

パッケージ情報の更新

 sudo apt update
 sudo apt upgrade

Certbotのインストール

 sudo apt install certbot
 

SSL/TLSサーバ証明書の取得

 sudo certbot certonly --webroot -w /var/www/html -d [ドメイン名]
  ・ エラーが出る場合はサーバへの80ポートが開いているか確認
  ・ 途中で使用可能なメールアドレスの入力と利用条件への同意
  ・ /etc/letsencrypt/live/hoge.example.com/以下に証明書が配置される
    ①cert.pem…公開鍵を含むSSLサーバ証明書
    ②chain.pem…中間証明書
    ③fullchain.pem…cert.pemとchain.pemが結合されたファイル
    ④privkey.pem…公開鍵に対応する秘密鍵
 sudo ls -l -s /etc/letsencrypt/live/[ドメイン名]

証明書のバックアップ

 sudo cp -r /etc/letsencrypt/ /etc/letsencrypt_cp/

Let's Encryptサーバ証明書の自動更新

 sudo certbot renew --dry-run
  ・Let's Encryptより発行されるサーバ証明書の有効期間は90日間なので自動更新を設定。
  ・crontab で毎日0:00に更新を実行するように設定。
   ※certbot内部でも証明書の有効期限をチェックして、更新不要であれば更新作業を行わないようにしているので、Let's Encryptが毎日実行するというシンプルな方法を推奨

 sudo crontab -e
  エディタを選んで最下行に下記1行追加
  0 0 * * * certbot renew

Apache2 の設定

SSLに関するモジュールの有効化

 sudo a2enmod ssl

設定ファイルを編集

 sudo nano /etc/apache2/sites-available/default-ssl.conf

   (管理者のメールアドレスへ修正)
   ServerAdmin = xxxxxx@xxxxx.xxx.xx
   (ルートディレクトリとして公開するディレクトリのパスへ修正)
   DocumentRoot = /var/www/html
   (取得したサーバ証明書と公開鍵のパスに変更)
   SSLCertificateFile /etc/letsencrypt/live/[ドメイン名]/cert.pem
   (取得した秘密鍵のパスに変更)
   SSLCertificateKeyFile /etc/letsencrypt/live/[ドメイン名]/privkey.pem
   (コメント解除して取得した中間証明書のパスに変更)
   SSLCertificateChainFile /etc/letsencrypt/live/[ドメイン名]/chain.pem

サイト設定を有効化

 sudo a2ensite default-ssl

Apache2の再起動

 sudo systemctl restart apache2

HTTP接続に対してHTTPSへのリダイレクトをかける

現在の状態を確認する

 sudo ls /etc/apache2/mods-enabled

mod_rewrite を有効にする

 sudo a2enmod rewrite

Apache2の再起動

 sudo systemctl restart apache2

現在の状態を確認する

 sudo ls /etc/apache2/mods-enabled

設定ファイルに下記のように 3行を Virtualhost 内最下部に追記

 sudo nano /etc/apache2/sites-available/000-default.conf
  RewriteEngine On
  RewriteCond %{HTTPS} off
  RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

参考サイト

https://izutsu.aa0.netvolante.jp/wiki-boubi/?%E3%82%B5%E3%82%A4%E3%83%88SSL%E5%8C%96

 添付ファイル     - [0]


 コメント追加