ApacheにSSLサーバ証明書の設定をおこなう

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
図1. サーバ証明書が正常にインストールされた様子

この際、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]

コメントする

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください