私のScientific Linux 6(RHEL6再構築)サーバーでは、ApacheはTLSv1.2をサポートしたいと思います。
動作させるいくつかのサポートされている方法はありますか?最小限のカスタム再構築が最適です。これで、SL6リポジトリに提供されているように、open_sslでmod_sslを使用しています。
編集する:TLSv1.2 のサポートが可能になると、Apache の設定がよく文書化され、それほど難しくありません。問題は、RHEL6がTLSバージョン1.0または1.1のみをサポートするOpenSSL 1.0.0に付属していることです。
答え1
TLSv1.2 および ECC サポートを追加するために、バンドル 1.0.0 バージョンを交換し、RHEL6 とそのバリエーションをサポートするために Fedora Core で OpenSSL 1.0.1 RPM をバックポートする方法に関するクイックガイドを作成しました. 2013 年 9 月 CentOS 6.4 用に構築およびテストされました。
注:これにはOpenSSLとOpenSSHの最新のコピーがあります。 CentOS 6.5の改善はTLS1.2の必要性を大幅に軽減し、2013年にも永遠に答えとして残るHeartbleedのような欠陥を解決します。次の手順に従わないでください。 1.0.1g以上を実行する必要があります。
今githubで:github/ptudor/centos6-openssl
このガイドで参照するパッチを提供しました。openssl-spec-patricktudor-latest.diff
まず、ビルド環境を準備します。 (すでにEPELがインストールされている場合は、偽装を使用してください。ここでは簡単にしてください...)
yum -y groupinstall "Development tools"
yum -y install rpm-build zlib-devel krb5-devel
mkdir -p $HOME/redhat/{BUILD,RPMS,SOURCES,SPECS,SRPMS}
echo "%_topdir $HOME/redhat/" > ~/.rpmmacros
次に、OpenSSL用Fedora Core 20 SRPMと完全なOpenSSLソースコードを入手してください。
rpm -Uvh http://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/source/SRPMS/o/openssl-1.0.1e-42.fc21.src.rpm
cd ~/redhat/SOURCES/
wget http://www.openssl.org/source/openssl-1.0.1g.tar.gz
wget http://www.openssl.org/source/openssl-1.0.1g.tar.gz.sha1
openssl dgst -sha1 openssl-1.0.1g.tar.gz ; cat openssl-1.0.1g.tar.gz.sha1
これで、古いsecure_getenv構文を適用し、パッチを適用します。
cd ~/redhat/SOURCES/
sed -i -e "s/secure_getenv/__secure_getenv/g" openssl-1.0.1e-env-zlib.patch
cd ~/redhat/SPECS/
wget http://www.ptudor.net/linux/openssl/resources/openssl-spec-patricktudor-fc20-19.diff
patch -p1 < openssl-spec-patricktudor-latest.diff
ビルドを実行します。
time rpmbuild -ba openssl.spec
すべてがうまくいくことを願っています。新しいRPMをインストールしてみましょう。
cd ~/redhat/RPMS/x86_64/
sudo rpm -Fvh openssl-1.0.1g-*.rpm openssl-libs-1.0.1g-*.rpm openssl-devel-1.0.1g-*.rpm
実際に動作していることを確認してください。
openssl ciphers -v 'TLSv1.2' | head -4
私のウェブサイトの上のリンクに詳細がありますが、これは良い出発点になります。
ありがとうございます。
20130819:レザーレザーバージョンが14から15に増加しました
20130831:fc20リビジョンが15から18に増加しました。
20130906:fc20リビジョンが18から19に増加しました。
20140408:1.0.1g以降のすべてのアイテムは私のサイトにアクセスできます。
答え2
TLSv1.2の設定を説明するServerFaultでこのリンクを見つけました。質問と回答 質問は次のとおりです。ApacheのSSL / TLS 1.2とopenssl 1.0.1。
次のリンクはTLSv1.2情報をカバーしています。
httpd.conf
httpd v2.2以降とopenssl 1.0.1c以降があると仮定すると、TLSv1.2アクティベーションエントリに次のものを含める必要があります。
SSLProtocol all -SSLv2
それでもCipherSuiteを設定する必要があります。これが混乱する場所です。上記の文書によると、唯一強制暗号スイートTLS 1.2の場合は次のようになりますTLS_RSA_WITH_AES_128_CBC_SHA
。
Appendix C. Cipher Suite Definitions
Cipher Suite Key Cipher Mac
Exchange
TLS_RSA_WITH_AES_128_CBC_SHA RSA AES_128_CBC SHA
つまり、サーバーは鍵交換用のRSA証明書を提供し、パスワードはAES_128_CBCとMac SHAでなければなりません。
httpd mod_sslドキュメントでは、これは次のように翻訳されています。
SSLCipherSuite aRSA:kRSA:AES128-CBC:SHA
あなたは読むことができますhttpdのSSLCipherSuites、ここ。
過去には、次のタイトルのブログ投稿にこれを使用しました。ApacheでSSLv2をロックするTLSv1.1に対してこれを行います。このページのすべてのコンテンツはまだ関連性がある必要があり、CipherSuites +のバージョンを変更するだけですopenssl
。
答え3
私は最近友人のためにPOODLEの文脈で同じ問題を調査していました。
epelで2013年10月の最新(AORN)httpd24バージョンを使用している場合は、デフォルトでTLSv1.0とTLSv1.1を受け取ります。しかし、ApacheでSSLProtocolを別の合理的な値に設定すると、httpd24が明らかにopensslヘッダー用に構築されているため、これらのプロトコルは失われます。
実際には、SSlv2またはSSlv3を明示的に無効にしようとすると、TLSv11とTLSv12が暗黙的に無効になることを意味します。
これは、mod_sslが知っているプロトコルが正確に1つに達したときに発生する不幸な問題です。
RedHat "Software Collection"のhttpd24は最近ビルドされており、この問題は発生しません。おそらくopensslの将来のバージョン用にビルドされている可能性があります(または単純なカスタムパッチがあります)。