忘備録 > サイトSSL化

自宅サーバー構築 サイトSSL化

Linuxによるサーバー構築メモ サイトSSL化

 Ubuntu 20.04LTS で構築した WwbサーバーをLet's Encryptのサーバ証明書を利用して SSL化する。

※ 最終更新:2021/06/07 

Ubuntu 20.04LTS サーバー

 Ubuntu 20.04 LTSのサーバー版インストールイメージ、「ライブインストーラー版」
 モジュール名:ubuntu-20.04.2-live-server-amd64.iso

Let's EncryptのSSL/TSLサーバ証明書の取得と更新設定

事前準備

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

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

サイトの SSL化

Apache2 の設定

  1. SSLに関するモジュールを有効化する
    $ sudo a2enmod ssl
  2. 設定ファイルを編集 (以下修正箇所)
    $ sudo vi /etc/apache2/sites-available/default-ssl.conf
    
     (管理者のメールアドレスへ修正)
     ServerAdmin = izutsum@venus.dti.ne.jp
    
     (ルートディレクトリとして公開するディレクトリのパスへ修正)
     DocumentRoot = /var/www/html
    
     (取得したサーバ証明書と公開鍵のパスに変更)
     SSLCertificateFile      /etc/letsencrypt/live/izutsu.aa0.netvolante.jp/cert.pem
    
     (取得した秘密鍵のパスに変更)
     SSLCertificateKeyFile   /etc/letsencrypt/live/izutsu.aa0.netvolante.jp/privkey.pem
    
     (コメント解除して取得した中間証明書のパスに変更)
     SSLCertificateChainFile /etc/letsencrypt/live/izutsu.aa0.netvolante.jp/chain.pem
  3. サイト設定を有効化する
    $ sudo a2ensite default-ssl
  4. Apache2 の再起動
    $ sudo systemctl restart apache2
  5. ブラウザより「https://izutsu.aa0.netvolante.jp」に接続。WEBページが表示されれば完了

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

  1. Apache2のRewriteEngine はオプションなので、有効にしないと動作しない
    • 現在の状態を確認する
      $ sudo ls /etc/apache2/mods-enabled
      access_compat.load  authn_file.load  autoindex.load  env.load          mpm_prefork.load  reqtimeout.conf     ssl.conf
      alias.conf          authz_core.load  deflate.conf    filter.load       negotiation.conf  reqtimeout.load     ssl.load
      alias.load          authz_host.load  deflate.load    mime.conf         negotiation.load  setenvif.conf       status.conf
      auth_basic.load     authz_user.load  dir.conf        mime.load         php7.4.conf       setenvif.load       status.load
      authn_core.load     autoindex.conf   dir.load        mpm_prefork.conf  php7.4.load       socache_shmcb.load
    • mod_rewrite を有効にする
      $ sudo a2enmod rewrite
      Enabling module rewrite.
      To activate the new configuration, you need to run:
        systemctl restart apache2
    • Apache2の再起動
      $ sudo systemctl restart apache2
    • 有効化を確認する
      $ sudo ls /etc/apache2/mods-enabled
      access_compat.load  authn_file.load  autoindex.load  env.load          mpm_prefork.load  reqtimeout.conf  socache_shmcb.load
      alias.conf          authz_core.load  deflate.conf    filter.load       negotiation.conf  reqtimeout.load  ssl.conf
      alias.load          authz_host.load  deflate.load    mime.conf         negotiation.load  rewrite.load     ssl.load
      auth_basic.load     authz_user.load  dir.conf        mime.load         php7.4.conf       setenvif.conf    status.conf
      authn_core.load     autoindex.conf   dir.load        mpm_prefork.conf  php7.4.load       setenvif.load    status.load
      }
      + 設定ファイルに下記のように 3行を Virtualhost 内最下部に追記~
      #codeprettify(){{
      $ sudo vi /etc/apache2/sites-available/000-default.conf
      
      <VirtualHost *:80>
          :
          :
      RewriteEngine On
      RewriteCond %{HTTPS} off
      RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
      </VirtualHost>
  2. Apache2の再起動
    $ sudo systemctl restart apache2

サイト内コンテンツの修正

更新履歴

参考資料