私はApache2バージョンを実行しています:
Server version: Apache/2.4.29 (Ubuntu)
Server built: 2018-04-25T11:38:24
TLSv1.3を有効にしたいのですが、SSLProtocol TLSv1.2 TLSv1.3
の中に ssl.conf
ファイル:
# apachectl configtest
AH00526: Syntax error on line 79 of /etc/Apache2/mods-enabled/ssl.conf:
SSLProtocol: Illegal protocol 'TLSv1.3'
Action 'configtest' failed.
The Apache error log may have more information.
Apache2で(まだ)TLSv1.3を有効にすることはできませんか?
Nginxでできることは知っていますが、この質問はApache2を対象としています。
TLSv1.3は、Apache 2.4ではまだサポートされていません。
OpenSSLでサポートされている場合 (こちらの情報を参照) であれば、Apache 2.4でもサポートされるはずです。
Debian Buster(現在テスト中)では、TLSv1.3はすでにサポートされています。
次の情報は、日付が記載されています。
# date -I
2019-02-24
Apache2バージョン:
# Apache2 -v
サーバーのバージョン:Apache /2.4.38(Debian)
サーバー構築:2019-01-31T20:54:05
グローバルに:
/etc/Apache2/mods-enabled/ssl.conf
ローカルに:
次の場所にあるVirtualHost:
/etc/Apache2/sites-enabled/
これまでに、TLSv1.1はついに非推奨になりました。したがって、必要なのはTLSv1.2とTLSv1.3だけです。
これを行うには、上記のファイルに次の行を追加します。
SSLProtocol -all +TLSv1.3 +TLSv1.2
暗号スイートはSSL
(TLSv1.3未満)とTLSv1.3
の2つのカテゴリに分かれています。独自の暗号セットを使用することもできますが、これは例としてのみ使用してください。
SSLCipherSuite TLSv1.3 TLS_AES_256_GCM_SHA384:TLS_AES_128_GCM_SHA256
SSLCipherSuite SSL ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256
最後に重要な注意事項:
有効にできる、または有効にする必要がある新しい曲線が1つあります:X25519。
あなたはこれを例えばこのように行うことができます、再び例のみ:
SSLOpenSSLConfCmd Curves X25519:secp521r1:secp384r1:prime256v1
試験運用:このサーバーはTLS 1.3(RFC 8446)をサポートしています。
TLSv1.3は、Apache2バージョン2.4.36とOpenSSL 1.1.1 Source でサポートされるようになりました。
PPAを使用すると、少なくとも私の経験から、システム、少なくとも将来のディストリビューションのアップグレードが台無しになる可能性があることに注意してください。
このPPAを使用することができます。このコマンドは、手間をかけずにシステムに追加します。
Sudo add-apt-repository ppa:ondrej/Apache2
この記事の執筆時点では、現在のバージョンは次のとおりでした。
$ Apache2 -v
Server version: Apache/2.4.37 (Ubuntu)
Server built: 2018-10-28T15:27:08
TLSv1.3はそのバージョンでサポートされています。
すべてのVirtualHostsに対してグローバルに有効にするには、ssl.conf
と設定:
SSLProtocol -all +TLSv1.2 +TLSv1.3
次に、Apache2を再起動すると、特に次のサイトで、テストの準備ができているはずです。
https://www.ssllabs.com/ssltest/
私の例の結果= TLSv1.3が有効
OpenSSL 1.1.1へのアップデートでは不十分であることが判明しました。 Apacheも 変更 でなければなりませんでした。その変更は backported でバージョン2.4.29になりました。したがって、月曜日以降 2.4.29-1ubuntu4.12 を使用しているため、Ubuntu 18.04 LTSはそのままでTLS 1.3をサポートしています。それは、元のポスターで言及された構成でした。
Stack Exchangeでの最近のTLS 1.0の廃止 表示 として、TLSバージョン、暗号スイート、および曲線は依然として熱い議論です。 testssl.sh 3.0は、Apache 2.4.29およびOpenSSL 1.1.1のデフォルトに非常に満足しています。したがって、カーブX448やTLS 1.3などの新しいテクノロジーを誤って無効にしていないかどうかを再確認する必要があります。たとえば、SSLProtocol -all
、今後のプロトコルバージョンをすべて無効にします。たとえば、SSLOpenSSLConfCmd Curves
、今後のすべての曲線を無効にします。
したがって、これらのデフォルトを一度微調整してから、それらを忘れることが良い考えかどうかはわかりません。代わりに、デフォルトを変更したい、維持された構成を探している人のために、Mozilla generator を開始点として使用しました。今日の終わりに、つまり明日もう一度確認してください。曲線を構成するための前述の方法のおかげで、私は SSL_Conf_Cmd APIに完全に取り掛かりました。
SSLEngine on
#SSLOpenSSLConfCmd MinProtocol TLSv1 # commented because current default in Ubuntu 18.04 LTS
SSLOpenSSLConfCmd Ciphersuites TLS_AES_128_GCM_SHA256 # if you have the computing resources, consider not to Tweak this
SSLOpenSSLConfCmd CipherString ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA:AES128-SHA
SSLOpenSSLConfCmd Curves X25519:secp256r1:secp384r1 # if you have the computing resources, consider not to Tweak this
SSLOpenSSLConfCmd Options ServerPreference,-SessionTicket
たとえば、SectigoのECCやRapidSSLのRSAなど、デュアルECDSA + RSAベースの証明書をインストールする場合、上記は セキュリティレベル を満たしますが、非常に古いクライアントでも下位互換性があります。