База знаний
Добиваемся рейтинга A+ на ssllabs.com
Опубликовано Игорь Чередниченко on 07 April 2016 21:06

Всем привет!  Статья посвещается Failover Conf 2016

Если У Вас ещё не получилось добиться статуса A+ на https://www.ssllabs.com/  то это очень просто.

Для примера мы возьмём:

стандартную сборку Вебсервера NGINX на сайте http://nginx.org/ru/download.html

Всем нам знакомый Centos6 или выше.

Не забываем  обновить openssl (мы использовали  из пакета openssl-1.0.1e-42.el6_7.2.x86_64.rpm )

 

Если у  нас ещё нет SSL сертификата и у Вас коммерческий проект требующий от SSL Высокого уровня валидации,  то приобрести такой сертификат вы можете у нас на сайте  www.rusonyx.ru

Мы же предполагаем,  что у Вас  уже есть набор из Приватного Ключа, самого сертификата (цепочки подтверждения CA CA-root-Bundle CA-Bundle)

 

Создадим файл параметров Diffie-Hellman


openssl dhparam -out /etc/ssl/certs/dhparam.pem 4096

Скорее всего этот процесс будет идти долго, запаситесь терпением!

 

Перейдём к конфигурированию Nginx.

 

http {
    ... Наши любимые стандартные настройки ...


    resolver IP нашего резолвера;
    resolver_timeout 5s;  # Таймаут резолвера.

    ssl_session_cache shared:SSL:50m;
    add_header X-Content-Type-Options nosniff;
    add_header X-XSS-Protection "1; mode=block";

    server {
        listen 80;
        server_name Наш Домен;

        # Тут мы перенаправим всех наших клиентов на HTTPS а если есть желание можно сразу начать отбивать неугодные нам запросы.
        return 301 https://$server_name$request_uri;
    }

    server {
        listen 443 ssl;
        server_name Наш Домен;


        ssl_stapling on;
        ssl on;

        ssl_certificate /путь к сертификату.crt;
        ssl_certificate_key /путь к приватному ключу.key;
        ssl_stapling_responder http://ocsp.startssl.com/sub/class1/server/ca;  # Если мы хотим использовать степлинг
        #ssl_trusted_certificate /Путь к/oscp_ca.pem; ## verify chain of trust of OCSP response
        ssl_dhparam /etc/pki/tls/dhparam.pem;

        ssl_session_timeout 24h;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA;
        ssl_prefer_server_ciphers   on;
            add_header Strict-Transport-Security "max-age=31536000";

        root /var/www/html;
        Наши любимые локейшены...

    }    
}


Данная конфигурация не ориентирована на спасение динозавров таких как Java6 WindowsXP IE 6/8. Мы за то,  чтобы использовались только сильные конфигурации не дающие злоумышленнику шанса прослушать соединение. 

Всем хорошего дня, Отказоустойчивых сервисов и надёжных SSL'ей. 

(6 голос(а))
Эта статья помогла
Эта статья не помогла

Коментарии (0)