Ниже будут находится условия, при которых проходит тест на pci dss compliant с оценкой A и выше. Все тесты проводились с использованием ресурса https://www.htbridge.com/ssl/
Примечание.
exim, postfix,dovecot могут получить оценки ниже, чем nginx, потому что не используют OCSP stapling (просто нет соответствующих опций)
nginx:
ssl_protocols TLSv1.1 TLSv1.2;
ssl_ciphers "HIGH:3DES:!RC4:!MD5:!CAMELLIA:!aNULL:!eNULL";
ssl_dhparam /etc/ssl/dhparam2048.pem;
ssl_ecdh_curve prime256v1;
ssl_prefer_server_ciphers on;
ssl_stapling on;
ssl_stapling_verify on;
ssl_session_tickets on;
postfix:
smtp_use_tls = yes
smtp_tls_note_starttls_offer = yes
smtpd_use_tls = yes
smtpd_tls_dh1024_param_file = /etc/ssl/dhparam2048.pem
smtpd_tls_mandatory_protocols = TLSv1.1, TLSv1.2
smtpd_tls_security_level = may
smtpd_tls_mandatory_ciphers = high
smtpd_tls_mandatory_exclude_ciphers = RC4,MD5,CAMELLIA,aNULL,eNULL
tls_preempt_cipherlist = yes
tls_high_cipherlist = HIGH:@STRENGTH
tls_random_source = dev:/dev/urandom
exim:
tls_on_connect_ports = 465
tls_dhparam = /etc/ssl/dhparam2048.pem
tls_require_ciphers = HIGH:3DES:!RC4:!MD5:!CAMELLIA:!aNULL:!eNULL
tls_advertise_hosts = *
openssl_options = +no_sslv2 +no_sslv3 +no_tlsv1
dovecot:
ssl_protocols = TLSv1.1 TLSv1.2
ssl_cipher_list = HIGH:3DES:!RC4:!MD5:!CAMELLIA:!aNULL:!eNULL
ssl_prefer_server_ciphers = yes
ssl_dh_parameters_length = 2048
Примечание.
На старых версиях dovecot’a, по умолчанию используется ключ DH всего 1024 байта. Если вы поменяете на 2048, то при старте dovecot’a он будет генерить его, и никто не сможет аутентифицироваться через ssl/tls. Поэтому, было предложено решение (нашёл в рассылке):
1. Создаём файл /tmp/ssl-params.conf такого содержания:
ssl_dh_parameters_length = 2048
state_dir = /tmp/
2. Генерируем ключ DH в формате dovecot’a:
$ /usr/libexec/dovecot/ssl-params -c /tmp/ssl-params.conf
3. Подменяем его на ssl-parameters.dat, который расположен в /var/lib/dovecot