web-dev-qa-db-ja.com

Apache2でTLSv1.3を有効にする方法は?

私は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を対象としています。

12
James Kowalski

TLSv1.3は、Apache 2.4ではまだサポートされていません。

OpenSSLでサポートされている場合 (こちらの情報を参照) であれば、Apache 2.4でもサポートされるはずです。

4
Bora

Debian Buster = TLSv1.3をサポート

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

SSLLabsでのドメインテストの例

試験運用:このサーバーはTLS 1.3(RFC 8446)をサポートしています。

TLSv1.3 enabled

15

TLSv1.3は、Apache2バージョン2.4.36とOpenSSL 1.1.1 Source でサポートされるようになりました。

12
obencs

編集者のメモ

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/

https://www.htbridge.com/ssl/

私の例の結果= TLSv1.3が有効

My example result = TLSv1.3 enabled

3
Aryeh Beitz

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ベースの証明書をインストールする場合、上記は セキュリティレベル を満たしますが、非常に古いクライアントでも下位互換性があります。

1
Alexander Traud