Apache2에서 TLSv1.3을 활성화하는 방법은 무엇입니까?

Apache2에서 TLSv1.3을 활성화하는 방법은 무엇입니까?

저는 Apache2 버전을 실행하고 있습니다:

Server version: Apache/2.4.29 (Ubuntu)
Server built:   2018-04-25T11:38:24

TLSv1.3을 활성화하고 싶지만 파일을 넣으면 Apache2에서 다음 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에 대한 것입니다.

답변1

데비안 버스터 = TLSv1.3 지원

Debian Buster(현재 테스트 중)에서는 TLSv1.3이 이미 지원됩니다.

다음 정보에 날짜가 나와 있습니다.

# date -I

2019-02-24


아파치 2 버전:

# apache2 -v

서버 버전: Apache/2.4.38(데비안)
서버 설정: 2019-01-31시간 20:54:05


활성화할 위치

전 세계적으로:

/etc/apache2/mods-enabled/ssl.conf

로컬 대상:

귀하의 웹 호스트는 다음 위치에 있습니다:

/etc/apache2/sites-enabled/

활성화 방법

현재 TLSv1.1은 더 이상 사용되지 않습니다. 따라서 TLSv1.2 및 TLSv1.3만 필요합니다.

이렇게 하려면 위 파일에 다음 줄을 넣으세요.

SSLProtocol -all +TLSv1.3 +TLSv1.2

암호 제품군

암호화 제품군은 이제 SSL(TLSv1.3 이하) 및 의 두 가지 범주로 구분됩니다 TLSv1.3. 예를 들어 자체 암호화 세트를 사용할 수 있습니다.

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

곡선

마지막에 중요한 참고 사항:

새 곡선을 활성화할 수 있거나 활성화해야 합니다.X25519.

다음과 같이 할 수 있습니다. 다시 예를 들면 다음과 같습니다.

SSLOpenSSLConfCmd Curves X25519:secp521r1:secp384r1:prime256v1

SSLLabs의 도메인 테스트 예

실험적: 이 서버는 TLS 1.3(RFC 8446)을 지원합니다.

TLSv1.3 활성화됨

답변2

Apache2 버전 2.4.36 및 OpenSSL 1.1.1은 이제 TLSv1.3을 지원합니다.원천.

답변3

Apache 2.4는 아직 TLSv1.3을 지원하지 않습니다.

OpenSSL이 지원되는 경우(여기에서 정보를 확인하세요), Apache 2.4에도 이 기능이 있어야 합니다.

답변4

OpenSSL 1.1.1로 업데이트하는 것만으로는 충분하지 않은 것으로 나타났습니다. 아파치는 반드시변경됨게다가. 그 변화는백포트버전 2.4.29 기준. 그럼 월요일부터2.4.29-1우분투4.12, Ubuntu 18.04 LTS는 이제 TLS 1.3을 지원합니다. 이는 원본 포스터에서 언급한 구성입니다.

Stack Exchange가 최근 TLS 1.0을 더 이상 사용하지 않기 때문에 TLS 버전, 암호 제품군 및 곡선은 여전히 ​​뜨거운 논쟁으로 남아 있습니다.보여주다.테스트sl.sh3.0 Apache 2.4.29 및 OpenSSL 1.1.1의 기본 설정에 매우 만족합니다. 따라서 Curve X448 또는 TLS 1.3과 같은 새로운 기술을 실수로 비활성화했는지 다시 확인해야 합니다. 예를 들어 를 사용하면 SSLProtocol -all향후 모든 프로토콜 버전이 비활성화됩니다. 예를 들어 를 사용하면 SSLOpenSSLConfCmd Curves앞으로 나오는 모든 곡선이 비활성화됩니다.

따라서 이러한 기본값을 한 번 조정한 다음 잊어버리는 것이 좋은 생각인지 잘 모르겠습니다. 대신 기본 설정을 변경하고 유지 관리 구성을 찾는 사람들을 위해 Mozilla를 사용합니다.발전기출발점으로. 오늘이 끝나면 내일 다시 확인하고 이미 언급한 곡선 구성 접근 방식 때문에 선택했습니다.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 기반 인증서 설치를 선택하면 위 요구 사항이 충족됩니다.보안 레벨 3, 아주 오래된 클라이언트와도 여전히 이전 버전과 호환됩니다.

관련 정보