Показаны сообщения с ярлыком SSL. Показать все сообщения
Показаны сообщения с ярлыком SSL. Показать все сообщения

четверг, 30 января 2025 г.

Проблемы на старых устройствах при обновлении SSL сертификата

 Андроиды до 10 и ТВ могут перестать работать

https://hoster.by/help/ssl-sertifikaty/posle-ustanovki-obnovleniya-ssl-sertifikata-sayt-ne-otkryvaetsya-u-nekotorykh-polzovateley-v-chem-mo/

Сайты с коммерческим SSL-сертификатом GlobalSign AlphaSSL могут перестать открываться у пользователей, использующих устройства с операционными системами Windows 7, 8, Android 9 и ниже. С 29 января 2024 SSL-сертификаты GlobalSign AlphaSSL используют новый корневой сертификат GCC R6 AlphaSSL CA 2023. Этот сертификат не поддерживается операционными системами ниже Windows 10 и Android 10. Для того, чтобы пользователи с операционными системами ниже Windows 10 и Android 10 могли без проблем посещать ваш сайт, нужно установить промежуточный сертификат R1-R6 

https://www.ispmanager.ru/news/globalsign-izmenil-ierarhiyu-kornevyh-sertifikatov-alphassl-i-alphassl-wildcard-s-r1-na-r6

https://support.globalsign.com/ca-certificates/root-certificates/globalsign-cross-certificates

понедельник, 29 августа 2022 г.

про серты LE

 Для большинства баян, но.. если стоит очень старая система и не принимает даже валидные LE серты

curl: (60) SSL certificate problem: certificate has expired

sudo apt install -y ca-certificates
sudo sed -i '/^mozilla\/DST_Root_CA_X3.crt$/ s/^/!/' /etc/ca-certificates.conf
sudo update-ca-certificates

https://stackoverflow.com/questions/69408776/how-to-force-older-debian-to-forget-about-dst-root-ca-x3-expiration-and-use-isrg

пятница, 30 декабря 2016 г.

Осваиваем letsencrypt

Начать лучше отсюда
https://certbot.eff.org/
и можно заглянуть сюда
https://certbot.eff.org/docs/

Там же есть оф клиент, которым можно сделать запрос. При этом если для centos 7 прямо в epel лежит certbot, то под 6 надо качать скрипт-установщик.

Также есть аналоги типа dehydrated, пример запуска тут:
https://habrahabr.ru/post/304174/
Особенность - из зависимостей только curl и openssl, тогда как оф версия тянет два десятка питоновых либ.

Принцип работы - указываем домен(ы), которые надо подписать, и куда класть проверочный файл, путь будет вида /.well-known/acme-challenge/(длинная строка)
Для апача прямо на сайте есть примеры конфигурации и скрипт умеет "донастроить" апач, также есть режим standalone, когда запустится веб сервер с нужным доменом. Несовместимо с другими серверами на порту 80, и запрашиваемый домен должен вести на тот же сервер, где и запустили утилиту.
С nginx нужно чуть больше работы - или указывать --webroot -w (путь к root проекта), или добавить location /.well-known в нужное место.
Итог искать в /etc/letsencrypt/live/ (с оф клиентом)

Также есть вариант подтверждения через dns, есть в документации.

В дальнейшем запускаем с опцией renew, и оно обновит все сертификаты. Но nginx перезапускать через -s reload недостаточно, надо service nginx reload, а иногда и вообще рестарт.

понедельник, 21 декабря 2015 г.

Проверка и чистка сертификатов

Ручной контроль
openssl s_client -connect addr:443 -ssl3
openssl s_client -connect addr:443 -tls1

Хорошая проверялка на проблемы и уязвимости

проверялка от Thawte

Чистилка от лишних сертификатов в цепочке (Symantec, Thawte, GeoTrust or RapidSSL certificate):
https://cryptoreport.thawte.com/checker/views/CrossCertRemove.jsp

(что плохого в SHA-1):

воскресенье, 27 октября 2013 г.

MySQL+SSL репликация

Репликация у MySQL изначально без шифрования, что снижает нагрузку на систему, но при разнесении базы на несколько площадок возникает вопрос безопасной репликации. Это можно делать как через сторонние тоннели, так и штатными методами через SSL. Будем делать штатными методами.

четверг, 1 ноября 2012 г.

несколько SSL сертификатов на 1 IP

Ключевое слово - SNI

Тонкость: XP+IE в пролёте.


Browsers with support for TLS server name indication[5]
Internet Explorer 7 or later, on Windows Vista or higher. Does not work on Windows XP, even Internet Explorer 8.
Mozilla Firefox 2.0 or later
Opera 8.0 or later (the TLS 1.1 protocol must be enabled)
Opera Mobile at least version 10.1 beta on Android[citation needed]
Google Chrome (Vista or higher. XP on Chrome 6 or newer.[6] OS X 10.5.7 or higher on Chrome 5.0.342.1 or newer)
Safari 2.1 or later (Mac OS X 10.5.6 or higher and Windows Vista or higher)
Konqueror/KDE 4.7 or later [7]
MobileSafari in Apple iOS 4.0 or later[8]
Android default browser on Honeycomb (v3.x) or newer[9]
Windows Phone 7[citation needed]
MicroB on Maemo



Servers
Apache 2.2.12 or later using mod_ssl[10][11][12] (or alternatively with experimental mod_gnutls[13])
Apache Traffic Server 3.2.0 or later.
Versions of lighttpd 1.4.x and 1.5.x with patch,[14] or 1.4.24+ without patch[15]
Nginx with an accompanying OpenSSL built with SNI support

вторник, 14 февраля 2012 г.

ssl: некоторые особенности заполнения

Прежде всего, а на что опираться при переводе названий городов и компании?
http://ru.wikipedia.org/wiki/Транслитерация_русского_алфавита_латиницей предлагает несколько вариантов, в частности для буквы Ц это C, TS, TC, Z. Какой вариант выбрать?

http://ru.wikipedia.org/wiki/ISO_9
http://ru.wikipedia.org/wiki/Транслитерация

Особенности транслитерации есть и для городов:
moscow, moskow, moskva...
sankt-peterburg, saint-petersburg, saint petersburg...
итд. И иногда вроде более верный вариант регистратор заворачивает. На что опираться? Опять же, или на ISO, или на спец порталы. Например
http://geonames.nga.mil/ggmagaz/

"Согласно информации из официальной базы данных иностранных географических названий http://geonames.nga.mil/ggmagaz/, поддерживаемой National Geospatial-Intelligence Agency (NGA), название Sankt-Peterburg считается одобренным (Approved). Название Saint Petersburg считается общепринятым (Conventional). Считаю использование названия Sankt-Peterburg в качестве значения атрибута Locality Name допустимым."

Некоторые регистраторы вроде того же Comodo требуют, чтобы фирма была в duns
http://en.wikipedia.org/wiki/Data_Universal_Numbering_System
http://www.dnb.ru/rbr.asp?rbr=25

Зачастую хотят, чтобы информация из whois на домен совпадала с той, что прописана в запросе. Поэтому уже на стадии заполнения информации для домена надо заполнять максимально правильно.

вторник, 31 января 2012 г.

Уходим с SSL на TLS

Уходим с SSL на TLS

OpenSSL
Дока про работу с SSL - можно проверять в том числе возможности сервера.
В частности

# openssl ciphers -v |grep -i TLS
#

И это дебиан 6.0.3! Впрочем, он отличается тормознутостью, сравнимой с даунизмом. Зато (типа) безопасный!
Вообще, в openssl с поддержкой TLS всё печально. Так что можно сразу переходить на gnutls.

Для этого придется править конфиги всех доменов с SSL. Универсальный метод - описать оба варианта сразу, например
<ifmodule mod_ssl.c>
        SSLEngine on
        SSLCertificateFile      /var/www/site.ru/ssl/certs/site.ru.pem
        SSLCertificateKeyFile   /var/www/site.ru/ssl/ppk/site.ru.key
        SSLCertificateChainFile /var/www/site.ru/ssl/ca/comodo-ca.crt
    </IfModule>

    <ifmodule mod_gnutls.c>
        GnuTLSEnable on
        GnuTLSCertificateFile   /var/www/site.ru/ssl/certs/site.ru.pem
        GnuTLSKeyFile           /var/www/site.ru/ssl/ppk/site.ru.key
        GnuTLSClientCAFile      /var/www/site.ru/ssl/ca/comodo-ca.crt
        GnuTLSPriorities        NORMAL

    </IfModule>

Замечания: без GnuTLSPriorities не запустится.
SSLCertificateChainFile будет называться GnuTLSClientCAFile, также можно попробовать добавить chain certificate в конец основного, или обновить системный ca-bundle.crt (отсюда). Надо проверять!
Тут есть нюанс с nginx:
"if you have a chain of certificates — by having intermediate certificates between the server certificate and the CA root certificate — they're not specified separately like you would do for Apache. Instead you'll need to concatenate all the certificates, starting with the server certificate, and going deeper in the chain running through all the intermediate certificates. This can be done with "cat chain.crt >> mysite.com.crt" on the command line."
http://wiki.nginx.org/HttpSslModule

То есть (наш домен) (корневой сертификат) >> итоговый файл

немного линков
SSL-enabled Name-based Apache Virtual Hosts with mod_gnutls
Apache HTTP Server: Обслуживание нескольких HTTPS-хостов на одном IP-адресе
Apache2/SSL and Name Based Virtual Hosts

вторник, 9 августа 2011 г.

Подключение существующего ssl сертификата в ISPManager

Чтобы подключить сертификат (неважно, через панель или руками в конфиге Apache) необходимо иметь сам сертификат и ключ.
Их следует указывать в ISPmanager в меню SSL сертификаты на уровне пользователя как "существующий" сертификат и затем там же активировать.

http://forum.ispsystem.com/ru/showthread.php?t=16016

Похоже, тут ключевой момент "на уровне пользователя".

Ошибочная инструкция по SSL-сертификатам
От рута даже не пытайтесь, при попытке включения будет ошибка "Пользователь не существует".

четверг, 10 марта 2011 г.

Установка сертификата с подписью на месяц verisign-ом

Рассматривается система apache-backend+nginx-frontend
Есть варианты:
1) в обход nginx. Apache сразу слушает на 443 порту
2) nginx-proxy
3) сертификат на nginx, а дальше общение открытым текстом.
Впрочем, есть вариант "голого" nginx, без апача:
http://silverghost.org.ua/2010/10/27/nginx-ssl-shifrovanie/

Рассмотрим вариант 3
Для начала, надо проверить, что есть поддержка http_ssl_module, который надо подключать во фре.
cd /usr/ports/www/mginx
make config
Находим строчку HTTP_SSL_MODULE, ставим там крестик и пересобираем.
В centos штатно этот модуль есть и его надо просто подключить.

Создаем etc/nginx/cert и переходим туда
Есть неплохая дока от verisign по созданию сертификата под апач. Там же можно для пробы сделать 30-дневный ключ.

Создаем ключ.
openssl genrsa –des3 –out .key 2048

Ключ должен быть 2048 бит!
Retail customers Note: The recommended key bit size is 2048-bit. All certificates that will expire after October, 2013 must have a 2048 bit key size.
MPKI for SSL customers Note: The recommended key bit size is 2048-bit. All certificates that will expire after December, 2013 must have a 2048 bit key size.

Спросит пароль - его лучше ввести для защиты от утаскивания ключа. Если же безопасность не волнует, из строки генерации надо убрать -des3

Теперь создаем сертификат

openssl req –new –key .key –out .csr

Есть особенности заполнения, лучше читать доку с verisign - даже если и создаст сертификат, попытка его подписать в нормальном месте закончится неудачно, если что-то неверно.
В данном примере файл можно назвать как csr (Certificate Signing Request) и как .pem, главное придерживаться единого формата.
В common name вписываем адрес нашего сайта.
По заполнению CSR есть на русском - на ssl.ru. Обращаем внимание на заполнение поля о фирме:
"Форма собственности указывается исключительно латинскими буквами, либо в Европейской интерпретации. Например:
OOO = Ltd или LLC
OAO = OJSC, JSC или OAO (латинскими)
ZAO = CJSC или JSC."
Про почту:
"Please do not enter an email address, challenge password or an optional company name when generating the CSR.". С verisign

После перезапуска nginx обнаруживаем несколько неприятных моментов.
1) сертификат не принимает - неизвестный сертификат издателя
2) при перезапуске nginx просит пароль.
От 1 - надо на каждом клиенте импортировать сертификат.. Или подключить к своему сертификату корневой (verisign), но у меня не получилось - не хотел принимать.

syntax: ssl_certificate файл
default: нет
context: http, server
Директива указывает файл с сертификатом в формате PEM для данного виртуального сервера. Если вместе с основным сертификатом нужно указать промежуточные, то они должны находиться в этом же файле в следующем порядке — сначала основной сертификат, а затем промежуточные. В этом же файле может находиться секретный ключ в формате PEM.
отсюда
Сохранил корневой сертификат с ссылки выше и сделал cat verisign.pem >> my.pem, перезапустил нгинх... Не заработало. В смысле, всё-равно надо принимать исключение. Хотя мне уже кажется, проблема не в подключении, а в корневом сертификате...

Теперь вариант 1 - через apache
Тут есть свои нюансы, например сертификат проверяет имя, но обращается не по имени сайта, а по айпи. То есть, надо иметь по айпи на сертификат.
дока
Создаем хранилице сертификатов, например /etc/httpd/ssl
Копируем туда наши ключики. Переименовываем сертификат в .crt - требование апача.

Открываем раздел VirtualHost и пишем туда:
SSLEngine on
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
Этим мы включаем ssl.

Для апача можно указать отдельную директиву - корневой сертификат
SSLCACertificateFile – This will need to point to the the intermediate file
SSLCertificateFile – This will need to point to the your SSL certificate itself that we issued to you
SSLCertificateKeyFile – This will need to point to the private key file associated with your certificate.

Note: Some versions of Apache will not accept the SSLCACertificateFile directive. Try using SSLCertificateChainFile instead.

Перезапустим апач.. И получим УПС, если у нас не стоит mod_ssl. Во фре он собирается через make config && make deinstall && make reinstall
В центоси через yum install mod_ssl
Небольшая статья-подсказка
У меня уже были настроены хосты, поэтому я убрал штатно поставленный ssl.conf, скопировал основной хост, вписал в начало
Listen 443
LoadModule ssl_module modules/mod_ssl.so

NameVirtualHost *:443

(тут старые настройки) и в конец

SSLEngine on
SSLCertificateFile "/etc/httpd/ssl/s.crt"
SSLCertificateKeyFile "/etc/httpd/ssl/s.key"
SSLCertificateChainFile "/etc/httpd/ssl/verisign.crt"


Для пробы сойдет. Но надо бы за основу взять ssl.conf и подключать сайты оттуда.

==================

Если нам надоел запрос ключа при старте - снимем его так
$ cp server.key server.key.org
$ openssl rsa -in server.key.org -out server.key

2. Make sure the server.key file is only readable by root:

$ chmod 400 server.key

===================

Частный/приватный ключ начинается со строки (.key)
-----BEGIN RSA PRIVATE KEY-----

Запрос на сертификат (.csr, .pem)
-----BEGIN CERTIFICATE REQUEST-----

Сертификат (.cert, .crt)
-----BEGIN CERTIFICATE-----


Инструкции у RapidSSL
Install certificate on apache
Generate a Certificate Signing Request (CSR) for Apache + Mod SSL + OpenSSL