2012年12月13日現在の FreeBSD 9.0 公式の OpenSSL は OpenSSL 0.9.8q 2 Dec 2010 となっており、これに依存した Web システムは TLS 1.1 および TLS 1.2 に対応できない。したがって、Ports にある最新版の OpenSSL をインストールする必要がある。
まずは、openssl を Ports の最新版を使用するよう設定する。
# echo "WITH_OPENSSL_PORT=yes" >> /etc/make.conf
# portmaster security/openssl
# ln -s /etc/ssl/openssl.cnf /usr/local/openssl/
インストールすると /usr/local/bin/openssl などが追加されるが既存の OpenSSL は無くならないため SSH で接続しながら作業が継続できる。
また、既存の OpenSSL に依存したサービスも継続して動作可能。再インストールまたはアップデート以降から最新版の OpenSSL が参照されるようになる。
バージョンは OpenSSL 1.0.1c 10 May 2012
前述の OpenSSL がインストールされれば、再インストールすると自動的に最新版の OpenSSL が使用される。
具体的には、/usr/local/lib/libssl.so.8 が使用されるようになる。
# portmaster nginx
SSLv3 はもはや必要ないと思われるが、サンプルとしてここでは記載しておく。
現時点で、Firefox 17.0.1 と Internet Explorer 6 は TLSv1 まで、Chrome 23 は TLSv1.1 まで、Internet Explorer 9 以降は TLSv1.2 まで対応している。
なお、Internet Explorer 6 はデフォルトで SSLv2 SSLv3 が有効で、TLSv1 は無効。
ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
設定後再起動
# service nginx restart