ここでは不特定多数に公開する WEB サーバーを対象としておりません。独自CA による WEBサイトの暗号化は限られた用途のみに限定する必要があります。
基本的に1.3系と内容は変わりません。クライアント認証の評価基準に変更があります。CA(認証局)とSSLサーバーに必要なサーバー証明書と秘密鍵が準備できている事が前提です。こちらで解説していますので参考にして下さい。
Apache2系統でSSL対応にするには、/etc/httpd/conf.d/ssl.conf を修正します。パスは適宜読み替えてください。
https://www.mydomain.net を有効にする場合
# コメントを解除しドメインを指定します。
DocumentRoot "/var/www/pub/html"
#ServerName www.example.com:443
ServerName www.mydomain.net:443
#SSLCertificateFile /etc/httpd/conf/ssl.crt/server.crt
#SSLCertificateFile /etc/httpd/conf/ssl.crt/server-dsa.crt
# 作成したサーバー証明書を指定
SSLCertificateFile /etc/httpd/ssl/cert.pem
#SSLCertificateKeyFile /etc/httpd/conf/ssl.key/server.key
#SSLCertificateKeyFile /etc/httpd/conf/ssl.key/server-dsa.key
# 作成したサーバーの秘密鍵
SSLCertificateKeyFile /etc/httpd/ssl/privkey.pem
#SSLCertificateChainFile /etc/httpd/conf/ssl.crt/ca.crt
SSLCertificateChainFile /usr/share/ssl/CA/cacert.pem
#SSLCACertificatePath /etc/httpd/conf/ssl.crt
#SSLCACertificateFile /usr/share/ssl/certs/ca-bundle.crt
SSLCACertificatePath /etc/httpd/ssl
SSLCACertificateFile /etc/httpd/ssl/cacert.pem
# CGIの実行を許可する場合はコメントアウトします。
<Directory "/var/www/cgi-bin">
SSLOptions +StdEnvVars
</Directory>
Apacheを再起動し、https://www.mydomain.net で接続できるか確認します。
クライアント認証でのSSLでCGIを認める場合は、ディレクティブで以下のように指定します。
クライアント認証時のCGIディレクトリの注意(ssl.conf)
SSLOptions +OptRenegotiate
また、以下のようにポートを明示的に指定しなければ
ServerName www.mydomain.net:443
CGIによってはPOST method でエラーが出て正常に動作しないので注意して下さい。
クライアント認証に関する設定は以下のとおりです。
## Certificate Revocation Lists (CRL):
## クライアント(ユーザー)証明書のパスと証明書を指定します
SSLCARevocationPath /etc/httpd/ssl/users
SSLCARevocationFile /etc/httpd/ssl/users/web_myserver_cert.pem
## クライアント認証の振舞いはそれぞれのディレクティブで指定することにします。
## /etc/httpd/conf.d/ssl.confでは無効にしておきます。
## クライアント認証の方式 ##
## Client Authentication (Type):
## 常にクライアント認証を行うのであれば、以下を有効にします。
#SSLVerifyClient require
#以下を1にして有効にすると全てのhttps接続にクライアント認証を求めます。
#これはディレクティブ毎に指定することにします。
#SSLVerifyDepth 1
/etc/httpd/conf.d/ssl.conf では全体のSSLに関するグローバルな設定を行うようにします。クライアント認証を任意のディレクトリに適用したい、また、任意のディレクトリに対してSSLを強要したいのであれば、それぞれのディレクティブ設定で指定するようにします。