This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
|
пакет_openssl [2024/05/25 10:13] val |
пакет_openssl [2025/11/01 10:23] (current) val [Проверка соответствия ключа и сертификата] |
||
|---|---|---|---|
| Line 14: | Line 14: | ||
| ===== Интерактивное подключение по ssl ===== | ===== Интерактивное подключение по ssl ===== | ||
| + | |||
| + | * [[Настройка терминалов]] | ||
| + | |||
| <code> | <code> | ||
| $ openssl s_client -connect ru.wikipedia.org:443 | $ openssl s_client -connect ru.wikipedia.org:443 | ||
| - | |||
| - | $ openssl s_client -showcerts -connect webinar6.bmstu.ru:443 2>/dev/null | openssl x509 -noout -dates #-text | grep bmstu | ||
| $ faketime -f "+500d" wget -q -O /dev/null https://webinar7.bmstu.ru && echo Ok || echo Err | $ faketime -f "+500d" wget -q -O /dev/null https://webinar7.bmstu.ru && echo Ok || echo Err | ||
| Line 45: | Line 46: | ||
| ==== Создание пары приватный/публичный ключ ==== | ==== Создание пары приватный/публичный ключ ==== | ||
| <code> | <code> | ||
| - | student@lan:~$ | + | $ openssl genrsa 2048 > key.private |
| - | user1@server:~$ openssl genrsa 2048 > key.private | + | |
| - | + | ||
| - | student@lan:~$ | + | |
| - | user1@server:~$ openssl rsa -pubout < key.private > key.public | + | |
| - | user1@server:~$ scp key.public user2@www: | + | $ openssl rsa -pubout < key.private > key.public |
| - | student@lan:~$ ftp-upload -h server -u student --password xxxxxxxx -v key.public | + | |
| </code> | </code> | ||
| - | * [[Сервис FTP#Команды ftp клиента]] | ||
| ==== Шифрование данных ==== | ==== Шифрование данных ==== | ||
| <code> | <code> | ||
| Line 107: | Line 102: | ||
| <code> | <code> | ||
| + | openssl genrsa -out wild.key 2048 | ||
| openssl req -new -x509 -days 3650 -key wild.key -out wild.crt -subj '/CN=*.corpX.un/O=CKO/C=RU' -addext 'subjectAltName=DNS:*.corpX.un' | openssl req -new -x509 -days 3650 -key wild.key -out wild.crt -subj '/CN=*.corpX.un/O=CKO/C=RU' -addext 'subjectAltName=DNS:*.corpX.un' | ||
| + | |||
| + | |||
| </code> | </code> | ||
| ==== Просмотр содержимого файла сертификата ==== | ==== Просмотр содержимого файла сертификата ==== | ||
| Line 123: | Line 121: | ||
| * Материалы по Windows [[Материалы по Windows#Экспорт корневого сертификата]] | * Материалы по Windows [[Материалы по Windows#Экспорт корневого сертификата]] | ||
| + | * [[Firefox#Использование системных сертификатов]] в Firefox | ||
| ==== Проверка ==== | ==== Проверка ==== | ||
| <code> | <code> | ||
| Line 137: | Line 136: | ||
| # cp ca.crt /usr/local/share/ca-certificates/ | # cp ca.crt /usr/local/share/ca-certificates/ | ||
| или | или | ||
| - | server# cp corpX-PDC-CA.crt /usr/local/share/ca-certificates/ | + | # cp corpX-PDC-CA.crt /usr/local/share/ca-certificates/ |
| + | или | ||
| + | # cp wild.crt /usr/local/share/ca-certificates/ | ||
| # update-ca-certificates | # update-ca-certificates | ||
| Line 144: | Line 145: | ||
| ... | ... | ||
| - | server# ls /etc/ssl/certs | grep corp | + | server# ls /etc/ssl/certs | grep "wild\|corp\|ca.pem" |
| - | или | + | |
| - | server# ls /etc/ssl/certs | grep ca.pem | + | |
| ... | ... | ||
| - | server# openssl verify server.crt | + | # openssl verify server.crt |
| server.crt: OK | server.crt: OK | ||
| - | # wget -O - https://www.corpX.un | + | # curl -v https://www.corpX.un |
| - | или | + | |
| - | # curl https://www.corpX.un | + | |
| </code> | </code> | ||
| Line 266: | Line 263: | ||
| ==== Инициализация списка отозванных сертификатов ==== | ==== Инициализация списка отозванных сертификатов ==== | ||
| <code> | <code> | ||
| - | lan# openssl ca -gencrl -out /var/www/html/ca.crl | + | lan# openssl ca -gencrl -crldays 365 -out /var/www/html/ca.crl |
| </code><code> | </code><code> | ||
| Enter pass phrase for ./CA/ca.key:Pa$$w0rd | Enter pass phrase for ./CA/ca.key:Pa$$w0rd | ||
| Line 291: | Line 288: | ||
| ... | ... | ||
| </code> | </code> | ||
| + | или | ||
| + | <code> | ||
| + | gate# openssl req -new -key gate.key -out gate.req -subj '/C=RU/ST=Moscow region/L=Moscow/O=cko/OU=noc/CN=gate.corpX.un' | ||
| + | </code> | ||
| + | |||
| + | |||
| === Добавление расширений в запрос на сертификат === | === Добавление расширений в запрос на сертификат === | ||
| Line 321: | Line 324: | ||
| ==== Подпись запроса на сертификат центром сертификации ==== | ==== Подпись запроса на сертификат центром сертификации ==== | ||
| - | <code> | ||
| - | lan# openssl ca -days 365 -in www.req -out www.crt # -extfile www.ext | ||
| - | |||
| - | lan# cat CA/index.txt | ||
| - | |||
| - | lan# ls CA/newcerts/ | ||
| - | </code> | ||
| === Добавление расширений при подписи запроса на сертификат === | === Добавление расширений при подписи запроса на сертификат === | ||
| Line 339: | Line 335: | ||
| DNS.2 = www.corpX.un | DNS.2 = www.corpX.un | ||
| #DNS.1 = *.corpX.un | #DNS.1 = *.corpX.un | ||
| + | </code><code> | ||
| + | lan# openssl ca -days 365 -in www.req -out www.crt -extfile www.ext | ||
| + | |||
| + | lan# cat CA/index.txt | ||
| + | |||
| + | lan# ls CA/newcerts/ | ||
| </code> | </code> | ||
| + | |||
| + | |||
| ==== Копирование подписанного сертификата на целевой сервер ==== | ==== Копирование подписанного сертификата на целевой сервер ==== | ||
| Line 358: | Line 362: | ||
| ==== Проверка соответствия ключа и сертификата ==== | ==== Проверка соответствия ключа и сертификата ==== | ||
| + | |||
| + | * [[https://www.ssl.com/faqs/how-do-i-confirm-that-a-private-key-matches-a-csr-and-certificate/|How to Verify an RSA Private Key Matches a CSR and Certificate]] | ||
| + | |||
| <code> | <code> | ||
| - | $ openssl x509 -noout -modulus -in www.crt | openssl md5 | + | $ openssl x509 -noout -modulus -in www.crt | openssl sha256 |
| - | $ openssl rsa -noout -modulus -in www.key | openssl md5 | + | $ openssl rsa -noout -modulus -in www.key | openssl sha256 |
| </code> | </code> | ||
| ==== Шифрование ключа сервера ==== | ==== Шифрование ключа сервера ==== | ||
| Line 389: | Line 396: | ||
| <code> | <code> | ||
| $ openssl req -new -key user1.key -out user1.req -subj '/C=RU/ST=Moscow region/L=Moscow/O=cko/OU=group1/CN=user1/emailAddress=user1@corpX.un/' | $ openssl req -new -key user1.key -out user1.req -subj '/C=RU/ST=Moscow region/L=Moscow/O=cko/OU=group1/CN=user1/emailAddress=user1@corpX.un/' | ||
| + | </code> | ||
| + | ИЛИ | ||
| + | <code> | ||
| + | freeipaclient$ openssl req -new -key user1.key -out user1.req -subj '/O=CORPX.UN/CN=user1/emailAddress=user1@corpX.un/' | ||
| </code> | </code> | ||
| Line 419: | Line 430: | ||
| lan# less CA/index.txt | lan# less CA/index.txt | ||
| - | lan# openssl ca -gencrl -out /var/www/html/ca.crl | + | lan# openssl ca -gencrl -crldays 365 -out /var/www/html/ca.crl |
| lan# openssl crl -text -noout -in /var/www/html/ca.crl | less | lan# openssl crl -text -noout -in /var/www/html/ca.crl | less | ||
| Line 427: | Line 438: | ||
| Serial Number: 0N | Serial Number: 0N | ||
| ... | ... | ||
| + | </code><code> | ||
| + | lan# scp /var/www/html/ca.crl gate:/etc/ssl/certs/ | ||
| </code> | </code> | ||