아무도 내가 tls 1.0 및 tls1.1을 비활성화 할 수없는 이유를 알고 있습니까?
SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
이 작업을 수행 한 후 아파치를 다시로드하고 ssllabs 또는 comodo ssl 도구를 사용하여 SSL 스캔을 수행하며 여전히 tls 1.1 및 1.0이 지원된다고 말합니다. 이것들을 제거하고 싶습니까?
답변
여러 개의 TLS VirtualHost가 있고 SNI (Server Name Indication)를 사용하는 SSLProtocol
경우 각 VirtualHost에 대한 지시문 을 갖는 것은 허용되는 구문 이지만 실제로 IP VirtualHosts가없는 경우 SSLProtocol
지시문 의 첫 번째 발생 설정 은 전체 서버에 사용됩니다. 및 / 또는 TLS를 지원하는 모든 이름 기반 VirtualHosts 1 .
따라서 지시문의 더 많은 발생에 대해서는 기본 httpd.conf
(및 포함 된 모든 스 니펫 conf.d/*.conf
및 유사한 포함)을 확인하십시오 SSLProtocol
.
속 기법 을 확장 할 때 약간 개선 할 수 있다는 ezra-s의 대답에 동의하지만 구문은 정확 all
합니다.
SSLProtocol +SSLv3 +TLSv1 +TLSv1.1 +TLSv1.2 -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
단순히 다음을 사용하여
SSLProtocol TLSv1.2
답변
지정한 것으로 충분하면 다른 프로토콜을 표시해서는 안됩니다. SSLLABS는 최근 테스트를 캐시합니다. 당신이했던 것처럼 그것을 정의하는 다른 프로토콜이 없다는 것을 아는 것은 의도적으로 복잡합니다.
어쨌든 당신은 그것을 사용하거나 간단하게 사용할 수 있습니다 :
SSLProtocol TLSv1.2
답변
이 문제로 고심하고 SSLProtocol
있었으므로 지시문으로 구성을 수정 하지 못했습니다. 가상 호스트 구성에 다음을 추가했습니다.
SSLOpenSSLConfCmd Protocol "-ALL, TLSv1.2"
완벽하게 작동했습니다. SSLOpenSSLConfCmd
지시문 에 대한 자세한 내용은 여기를 참조하십시오 .
답변
Apache에서 TLS1.0 버전을 비활성화하십시오.
여러 개의 가상 호스팅이있는 경우 모든 구성 파일을 업데이트해야합니다. 그렇지 않으면 ssl.conf이면 충분합니다.
TSL 지원 버전을 확인하려면 다음을 수행하십시오.
# nmap --script ssl-enum-ciphers -p 443 192.168.11.10 | grep TLSv
| TLSv1.0:
| TLSv1.1:
| TLSv1.2:
Apache 구성 파일을 수정하여 vi /etc/httpd/conf.d/web.conf
모든 TLS를 제거하고 TLS1.2 만 허용하십시오.
SSLProtocol TLSv1.2
수정 후 확인하십시오.
# grep SSLProtocol /etc/httpd/conf.d/web.conf
SSLProtocol TLSv1.2
# nmap --script ssl-enum-ciphers -p 443 192.168.11.10 | grep TLSv
| TLSv1.2:
# service httpd restart
답변
변경 사항을 반영하려면 다음 명령을 사용하여 Apache 서비스를 다시 시작해야합니다.
sudo service apache2 restart
아래 코드가 제대로 작동하면이 기사를 확인하여 자세한 내용을
확인할 수 있습니다.
<VirtualHost *:443>
ServerName www.yourdomain.com
DocumentRoot /var/www/html
SSLEngine on
SSLProtocol +TLSv1.2
SSLCertificateFile /etc/apache2/certificates/certificate.crt
SSLCertificateKeyFile /etc/apache2/certificates/certificate.key
SSLCertificateChainFile /etc/apache2/certificates/intermediate.crt
</VirtualHost>