Jurik-Phys.Net

~ Простота и ясность ~

Инструменты пользователя

Инструменты сайта


itechnology:crypto

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
Следующая версияСледующая версия справа и слева
itechnology:crypto [2014/06/13 21:23] – [Общие положения] jurik_physitechnology:crypto [2016/06/30 11:02] – [Получение сертификата] jurik_phys
Строка 121: Строка 121:
 ==== Генерация паролей ==== ==== Генерация паролей ====
 Для генерации можно использовать утилиту pwgen прямо из vim'а<code vim>:r!pwgen -sy 12 1</code> Для генерации можно использовать утилиту pwgen прямо из vim'а<code vim>:r!pwgen -sy 12 1</code>
 +
 +===== Cертификат для сайта. =====
 +==== Получение сертификата ====
 +
 +По материалам [[http://habrahabr.ru/post/249529/|habrahabr.ru]], дополнительная [[https://www.linux.org.ru/forum/general/11851096?lastmod=1439292493789#comment-11851286|литература]].
 +
 +1. Регистрация на сайте login.wosign.com/reg.html и подтверждение электронной почты.
 +
 +2. Заказ бесплатного сертификата по адресу buy.wosign.com/DVSSL.html. Рядом с ценой (обозначено красным цветом) нажать на синий квадрат (получение бесплатного сертификата), ниже зелёная кнопка - продолжить оформление сертификата.
 +
 +3. Ввод нужных доменных имен, подтверждение владения доменом. При вводе домена в виде www.example.com, example.com выписывается сервисом автоматически.
 +
 +4. Генерация на сервере приватного ключа и CSR (Certificate Signing Request) - запроса на получение сертификата, который представляет собой текстовый файл, содержащий в закодированном виде информацию об администраторе домена и открытый ключ: <code bash>openssl req -out mydomain.com.csr -new -sha256 -newkey rsa:2048 -nodes -keyout mydomain.com.key</code>
 +
 +При генерации CSR необходимо ввести, как минимум:
 +  * имя сервера (Common Name) — полностью определенное доменное имя;
 +  * название страны (Country Name) — двухбуквенный код страны, для РФ — «RU».
 +Указанные в CSR данные, должны соответствовать данным, указанным в Whois-сервисе по домену.
 +
 +5. Вставка содержимого файла mydomain.com.csr в форму сайта. Завершение формальностей с вводом пароля, принятием лицензионного соглашения и т.д.
 +
 +6. Скачивание zip-архива с сертификатом сайта с сайта или по ссылке в письме. При подписывании сертификата возможна задержка на несколько часов. 
 +
 +7. После установки сертификата и сгенерированного приватного ключа на сайт, желательно проверить уровень безопасности сайта через [[https://www.ssllabs.com/ssltest/index.html|SSL-тестере]].
 +
 +8. Настройка OCSP stapling на сервере для полученного сертификата.
 +
 +==== Настройка OCSP stapling ====
 +
 +По материалам [[http://www.8host.com/blog/nastrojka-ocsp-stapling-na-serverax-apache-i-nginx/|8host.com]] и , [[http://habrahabr.ru/post/254231/|habrahabr.ru]]
 +
 +Получение корневого и промежуточного сертификата CA. 
 +<code bash>wget -O - https://www.startssl.com/certs/ca.pem | tee -a ca-certs.pem > /dev/null 
 +wget -O - https://www.startssl.com/certs/sub.class1.server.ca.pem | tee -a ca-certs.pem > /dev/null </code>
 +
 +Cертификаты в формате DER необходимо сконвертировать в PEM.
 +<code bash>wget -O - http://aia.startssl.com/certs/ca.crt | openssl x509 -inform DER -outform PEM | tee -a ca-certs.pem > /dev/null 
 +wget -O - http://aia1.wosign.com/ca1g2-server1-free.cer | openssl x509 -inform DER -outform PEM | tee -a ca-certs.pem > /dev/null 
 +wget -O - http://aia6.wosign.com/ca6.server1.free.cer | openssl x509 -inform DER -outform PEM | tee -a ca-certs.pem > /dev/null </code>
 +
 +Редактирование файла виртуальных хостов SSL. В директиву <VirtualHost></VirtualHost> добавить:
 +<code>SSLCACertificateFile /etc/ssl/ca-certs.pem
 +SSLUseStapling on</code>
 +
 +Вне директивы <VirtualHost></VirtualHost> указать кэш<code>SSLStaplingCache shmcb:/tmp/stapling_cache(128000)</code>
 +
 +Протестировать изменённый конфиг и перезагрузить настройки:<code>apachectl -t
 +service apache2 reload</code>
 +
 +Проверка результата на [[https://www.ssllabs.com/ssltest/index.html|SSL-тестере]].
 +<code>
 +Protocol Details
 +----------------
 +OCSP stapling Yes</code>
 +
 +==== OCSP stapling итоги ====
 +
 +На следующий день после удачной настройки сайт перестал открываться в ошибкой <code>sec_error_ocsp_try_server_later</code>
 +В логах apach'а ошибка Bad gateway 502. Вероятно, что проявилась обозначенная на хабре [[http://habrahabr.ru/post/254231/#comment_8350543|проблема]].
 +
 +==== Forward Secrecy по-умолчанию ====
 +**Способ 1. Рекомендованный:** ([[https://www.digicert.com/ssl-support/ssl-enabling-perfect-forward-secrecy.htm|digicert.com]]). \\
 +Использование Forward Secrecy определяется набором используемых шифров.
 +<code>
 +SSLProtocol all -SSLv2 -SSLv3
 +SSLHonorCipherOrder On
 +SSLCipherSuite "EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH+aRSA+RC4 EECDH EDH+aRSA RC4 !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS !RC4"
 +</code>
 +**Способ 2. Простой, но увеличивающий нагрузку на сервер:** ([[https://raymii.org/s/tutorials/Strong_SSL_Security_On_Apache2.html|raymii.org]]). \\
 +
 +Увеличение стойкости DH-шифров.
 +<code>#Generate the parameters
 +cd /etc/ssl/certs
 +openssl dhparam -out dhparam.pem 4096
 +
 +# Add the following to your Apache config.
 +SSLOpenSSLConfCmd DHParameters "/etc/ssl/certs/dhparam.pem"</code>
 +
 +==== Turn On HSTS ====
 +HSTS - HTTP Strict Transport Security. Включение, согласно, [[http://itigloo.com/security/how-to-configure-http-strict-transport-security-hsts-on-apache-nginx/|itigloo.com]].
 +  - Enable the Apache Headers Module.<code>a2enmod headers</code> 
 +  - Add the additional header to the HTTPS VirtualHost directive. Max-age is measured in seconds.<code><VirtualHost *:443>
 +    # Guarantee HTTPS for 1 Year including Sub Domains 
 +    Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"</code>
itechnology/crypto.txt · Последнее изменение: 2022/04/10 21:08 — jurik_phys