1. 概要
インターネットに公開しているウェブサーバであっても、構築中のサイトや、組織に所属している者だけにしか公開したくないサイト等があります。
そういう場合にアクセス制限をかける方法について「FreeBSD - メンテナンス・トラブルシュート - ウェブサーバ」に記述してありますので、ご参照ください。
以下「SSL」、すなわち「https://」でアクセスさせる方法について記述します。
「SSL」で接続するには、認証情報のファイルが必要になります。
認証情報の作成については「メンテナンス・トラブルシュート - SSL(Secure Sockets Layer)」をご参照ください。
2. コンフィグレーションファイルの設定
認証情報を作成後、「SSL」の設定を行います。
vi /usr/local/etc/apache24/httpd.conf
以下の箇所の先頭の「#」を削除してコメント解除します。
#LoadModule socache_shmcb_module libexec/apache24/mod_socache_shmcb.so
#LoadModule ssl_module libexec/apache24/mod_ssl.so
#Include etc/apache24/extra/httpd-ssl.conf
次に
vi /usr/local/etc/apache24/extra/httpd-ssl.conf
下記をサーバの設定に合わせて適宜変えます。
DocumentRoot "/usr/local/www/apache24/data"
ServerName www.example.com:443
ServerAdmin you@example.com
ErrorLog "/var/log/httpd-error.log"
TransferLog "/var/log/httpd-access.log"
認証情報として作成したもののうち、必要なものを特定のディレクトリにコピーします。
mkdir -pv /パス
cp /etc/ssl/demoCA/cert.pem /パス/cert.pem
cp /etc/ssl/demoCA/nokey.pem /パス/nokey.pem
cp /etc/ssl/demoCA/cacert.pem /パス/cacert.pem
再度
vi /usr/local/etc/apache24/extra/httpd-ssl.conf
以下のように編集します。
SSLCertificateFile "/パス/cert.pem"
#SSLCertificateFile "/usr/local/etc/apache24/server-dsa.crt"
#SSLCertificateFile "/usr/local/etc/apache24/server-ecc.crt"
# Server Private Key:
# If the key is not combined with the certificate, use this
# directive to point at the key file. Keep in mind that if
# you've both a RSA and a DSA private key you can configure
# both in parallel (to also allow the use of DSA ciphers, etc.)
# ECC keys, when in use, can also be configured in parallel
SSLCertificateKeyFile "/パス/nokey.pem"
#SSLCertificateKeyFile "/usr/local/etc/apache24/server-dsa.key"
#SSLCertificateKeyFile "/usr/local/etc/apache24/server-ecc.key"
# Server Certificate Chain:
# Point SSLCertificateChainFile at a file containing the
# concatenation of PEM encoded CA certificates which form the
# certificate chain for the server certificate. Alternatively
# the referenced file can be the same as SSLCertificateFile
# when the CA certificates are directly appended to the server
# certificate for convenience.
#SSLCertificateChainFile "/usr/local/etc/apache24/server-ca.crt"
# Certificate Authority (CA):
# Set the CA certificate verification path where to find CA
# certificates for client authentication or alternatively one
# huge file containing all of them (file must be PEM encoded)
# Note: Inside SSLCACertificatePath you need hash symlinks
# to point to the certificate files. Use the provided
# Makefile to update the hash symlinks after changes.
#SSLCACertificatePath "/usr/local/etc/apache24/ssl.crt"
SSLCACertificateFile "/パス/cacert.pem"
/usr/local/etc/apache24/Includes/
配下に適切な名前のコンフィグレーションファイルを作成して、https でアクセスさせたいディレクトリを以下のように記述します。
<Directory /usr/local/www/https>
SSLRequireSSL
SSLVerifyClient require
AllowOverride None
Options +Includes -Indexes
Require all granted
</Directory>
1行目は、「/usr/local/etc/apache24/extra/httpd-ssl.conf」のドキュメントルートと合わせる必要があります)
4行目は、クライアントに要求する認証情報を示します。
指定する値は、数字もしくは文字で、4種類あり、それぞれ下記の意味を持ちます。