Рубрики
ssl \ certificate

сертификат \ проверка сертификатов \ собственный \ корневые \ добавить \ CA \ cert \ openssl

Ссылки:

https://qastack.ru/server/511812/how-does-one-install-a-custom-ca-certificate-on-centos
https://qastack.ru/unix/90450/adding-a-self-signed-certificate-to-the-trusted-list
https://qastack.ru/superuser/742393/how-to-use-curl-to-verify-if-a-sites-certificate-has-been-revoked
https://help.ubuntu.ru/wiki/%D1%80%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE_ubuntu_server/%D0%B1%D0%B5%D0%B7%D0%BE%D0%BF%D0%B0%D1%81%D0%BD%D0%BE%D1%81%D1%82%D1%8C/certificates
https://www.digitalocean.com/community/tutorials/how-to-set-up-and-configure-a-certificate-authority-ca-on-ubuntu-20-04-ru

openssl

openssl x509 -noout -text -in filename.crt - просмотр сертификата
openssl rsa -noout -text -in filename.key - просмотр ключа
openssl req -noout -text -in filename.csr - просмотр CSR
openssl genrsa -out private.key 2048 - генерация ключа
openssl req -new -key private.key -out filename.csr - генерация CSR
openssl req -x509 -nodes -days 9999  -newkey rsa:2048 -keyout ./domain.key -out ./domain.crt - генерация само подписанного сертификата
openssl s_client -servername ИМЯ -connect ХОСТ:ПОРТ - проверка установленного на web-сервер сертификата

openssl цепочки \ выгрузка \ конвертация

Первый вариант выгрузка цепочки:
openssl s_client -connect {HOSTNAME}:{PORT} -showcerts

Второй вариант выгрузка цепочки:
openssl s_client -showcerts -connect host.name.com:443 -servername host.name.com  host.name.com.pem

Конвертация в x509 для desktop:
penssl x509 -inform PEM -in host.name.com.pem -outform DER -out host.name.com.cer

Проверка:

Вариант первый:
curl https://you_problem_site

Второй вариант:
openssl s_client -connect you_problem_site:443

Третий вариант:
strace curl https://www.google.com   -v

Четвертый вариант:
curl -L -v -s https://www.google.de 1>/dev/null

Выгрузить цепочку сертификатов:
openssl s_client -connect {HOSTNAME}:{PORT} -showcerts

CentOS

!!! update-ca-trust enable - по умолчанию включено
0. Выкладываем файл цепочки cert в каталог:
/etc/pki/ca-trust/source/anchors/ - для получения высокого приоритета (без переопределения)

1. Обновляем системное хранилище
update-ca-trust extract

Debian

!!! apt-get install ca-certificates
!!! dpkg-reconfigure ca-certificates

0. Выкладываем файл цепочки cert в каталог:
!!! ВНИМАНИЕ РАШИРЕНИЕ У ФАЙЛА ДОЛЖНО БЫТЬ "crt" ,  "name.crt"
/usr/local/share/ca-certificates/

1. Обновляем системное хранилище
update-ca-certificates

chrome-export-cert

Ubuntu 16.04 \ Let’s Encrypt срок действия DST Root CA X3 подходит к концу 30 сентября 2021 14:01:15 GMT

Ссылки:
https://habr.com/ru/post/580092/
https://medium.com/@brunoosiek/updating-openssl-latest-and-greatest-version-in-ubuntu-18-04-8f10ba4e2377


Что можно сделать:
0. Копируем себе корневой сертификат ISRG_Root_X1.crt:
curl -k https://letsencrypt.org/certs/isrgrootx1.pem.txt | sudo tee /usr/share/ca-certificates/mozilla/ISRG_Root_X1.crt

1. Добавить в файл /etc/ca-certificates.conf строчку:
mozilla/ISRG_Root_X1.crt
2. В файле /etc/ca-certificates.conf нужно найти строчку mozilla/DST_Root_CA_X3.crt и изменить на:
!mozilla/DST_Root_CA_X3.crt
3. Применить  
update-ca-certificates

4. Проверка:
faketime -f '@2021-10-01 00:00:00' curl  https://letsencrypt.org/


Как обновить openssl на ubuntu 16.04 до 1.1.1
Устанавливаем:
mkdir /opt/openssl
cd /opt/openssl
## wget --no-check-certificate https://www.openssl.org/source/openssl-1.1.1m.tar.gz -  не проверять сертификат сервера
wget https://www.openssl.org/source/openssl-1.1.1m.tar.gz
tar -xvf openssl-1.1.1g.tar.gz 
sudo ./config --prefix=/opt/openssl --openssldir=/opt/openssl/ssl
sudo make
sudo make install
mv /usr/bin/openssl /usr/bin/openssl.old
ln -s /opt/openssl/bin/openssl /usr/bin/openssl

Правим файл:
vim  /etc/ld.so.conf.d/openssl.conf
-----------------------------------
/opt/openssl/lib
-----------------------------------

Применяем / загружаем библиотеки:
sudo ldconfig

Проверяем:
which openssl
openssl version
openssl

Сертификаты:
sudo ln -s /etc/ssl/certs/*.* /opt/openssl/ssl/certs/

Установка для веб сервера

https://knowledge.digicert.com/quovadis/ssl-certificates/ssl-installation/how-do-i-install-an-ssl-certificate-into-nginx.html
!!! Обычно присылаю четыре файла
!!! Сертификат .crt
!!! Промежуточный / intermediate .crt
!!! root .crt
!!! Приватный ключ key-5.txt

!!! Сертификаты (.cert) нужно собрать в файл
-----BEGIN CERTIFICATE-----

-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----

-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----

-----END CERTIFICATE-----


Пример конфигурации nginx

server {
    server_name your_domain_name;
    listen 443;
    ssl on;
    ssl_certificate /usr/local/nginx/conf/certificate_bundle.crt;
    ssl_certificate_key /usr/local/nginx/conf/your_private_key.key;
}


p12


Генерируем приватный ключ(key) и сертификат(pem)
openssl req -new -x509 -days 4000 -keyout server.key -out server.pem

Убираем пароль с приватного ключа
openssl rsa -in server.key.orig -out server.key

Генерируем p12
openssl pkcs12 -export -in server.pem -inkey server.key -out server.p12  -name hawkbit
Рубрики
ssl \ certificate

ssl \ ssl_choose_client_version:unsupported protocol \ routines:tls_process_ske_dhe:dh key too small

Ссылки:

https://sysadminfaq.ru/linux/centos-8.-pyodbc-mssql-ssl-error
Ошибка SSL dh key too small
https://stackoverflow.com/questions/53058362/how-do-i-manage-the-error-openssl-v1-1-1-ssl-choose-client-version-unsupported

Ошибка ssl_choose_client_version:unsupported protoco

[root@proxy2 squid]# curl https://bill.comfortel.pro
curl: (35) error:1425F102:SSL routines:ssl_choose_client_version:unsupported protocol

Вариант решения:
vim /etc/crypto-policies/back-ends/opensslcnf.config
Выставить\Изменить MinProtocol = TLSv1.0

Ошибка tls_process_ske_dhe:dh key too small

curl https://site.url.ru                     
    curl: (35) error:141A318A:SSL routines:tls_process_ske_dhe:dh key too small


Вариант решения:
update-crypto-policies --set LEGACY