Disable TLS 1.0/1.1 in Plesk for PCI Compliance
PCI DSS requires servers to reject TLS 1.0 and TLS 1.1 and use only TLS 1.2 or higher. This guide shows how to enforce that in Plesk on Linux.
Prerequisites
- Root SSH access to the Plesk server
- Plesk 11.x, 12.x, or Onyx (17.x) on Linux
Steps
1. Edit the Plesk SSL configuration:
nano /etc/nginx/conf.d/ssl.conf
Set the allowed protocols:
ssl_protocols TLSv1.2 TLSv1.3;
2. For Apache (if used without Nginx):
nano /etc/httpd/conf.d/ssl.conf
SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
3. Disable weak cipher suites (Nginx):
ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!3DES:!MD5:!PSK';
4. Apply changes via Plesk:
plesk sbin httpdmng --reconfigure-all
service nginx restart
service httpd restart
Verify
openssl s_client -connect yourdomain.com:443 -tls1
# Should return: handshake failure
openssl s_client -connect yourdomain.com:443 -tls1_2
# Should return: SSL handshake has read ...
Also run the domain through a PCI scanner or https://www.ssllabs.com/ssltest/.
Notes
- TLS 1.0 and 1.1 disablement may break very old browsers (IE 8 on Windows XP).
- After a Plesk update, regenerate configs with
plesk sbin httpdmng --reconfigure-all.