OS: Ubuntu Server 18.04.1 LTS
Apache 2.4.35
SSLサーバ証明書を取得したらWebサーバの設定もアタボウに必要である。ソースからインストールしたApache2の設定ファイルを編集してゆく。幸い conf/extra/httpd-ssl.conf
に雛形が用意されているので大きく書き換える必要が無くて大変有難いものである。
暗号化通信をおこなうためのモジュールがロードされていないと
AH00526: Syntax error on line 2 of /usr/local/apache2/conf/extra/httpd-ssl.conf: Invalid command 'SSLCipherSuite', perhaps misspelled or defined by a module not included in the server configuration
というエラーメッセージを頂戴したり
AH00526: Syntax error on line 8 of /usr/local/apache2/conf/extra/httpd-ssl.conf: SSLSessionCache: 'shmcb' session cache not supported (known names: ). Maybe you need to load the appropriate socache module (mod_socache_shmcb?).
という具合にSSLセッションをキャッシュする機能を活用するためのモジュールが必要である旨、知らされる。予め各モジュールをロードするように項目のコメントを外しておく。
$ sudo vi /usr/local/apache2/conf/httpd.conf LoadModule ssl_module modules/mod_ssl.so LoadModule socache_shmcb_module modules/mod_socache_shmcb.so Include conf/extra/httpd-ssl.conf
あとはhttpd-ssl.confの雛形を利用してVirtualHostの設定をしたり証明書や秘密鍵を読み込むようよしなに書き換えてconfigtestでSyntax OKが出れば終いである。
$ sudo vi /usr/local/apache2/conf/extra/httpd-ssl.conf SSLCertificateFile "/etc/letsencrypt/live/www7390uo.sakura.ne.jp/fullchain.pem" SSLCertificateKeyFile "/etc/letsencrypt/live/www7390uo.sakura.ne.jp/privkey.pem" $ sudo /usr/local/apache2/bin/apachectl configtest Syntax OK
この際、mod_rewriteで以ってHTTPでのアクセスをHTTPSへリダイレクトさせる為に.htaccessも追加してやった。クライアントへ返すHTTPステータスコードは301 Moved Parmanentlyにしてやれば良さそうな情勢である。
$ vi .htaccess RewriteEngine On RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]