Показаны различия между двумя версиями страницы.
Предыдущая версия справа и слева Предыдущая версия | |||
linux:openssl [2025/04/04 06:01] admin |
linux:openssl [2025/04/04 13:10] (текущий) admin |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
====== OpenSSL ====== | ====== OpenSSL ====== | ||
- | ===== rand ===== | + | |
+ | ===== Разное | ||
+ | ==== rand ==== | ||
Генерирует последовательность случайных байтов\\ | Генерирует последовательность случайных байтов\\ | ||
<code bash> | <code bash> | ||
Строка 8: | Строка 10: | ||
- | ===== Получение | + | |
+ | ==== Работа с сертами ==== | ||
Можно получить/ | Можно получить/ | ||
<code bash> | <code bash> | ||
# Просмотреть сведения о сертификате | # Просмотреть сведения о сертификате | ||
openssl s_client -connect deeplay.enterprise.slack.com: | openssl s_client -connect deeplay.enterprise.slack.com: | ||
+ | |||
# Для postgres | # Для postgres | ||
openssl s_client -starttls postgres -connect ip:port | openssl s_client -starttls postgres -connect ip:port | ||
+ | |||
# Сохранить сведения в файл (экспорт) | # Сохранить сведения в файл (экспорт) | ||
echo -n | openssl s_client -connect site.ru:443 | sed -ne '/ | echo -n | openssl s_client -connect site.ru:443 | sed -ne '/ | ||
+ | |||
# Далее можно импортировать его например в Java | # Далее можно импортировать его например в Java | ||
keytool -import -trustcacerts -keystore / | keytool -import -trustcacerts -keystore / | ||
| | ||
+ | |||
# Узнать кто выдал сертификат | # Узнать кто выдал сертификат | ||
# далее, по указанной ссылке можно скачать вышестоящий, | # далее, по указанной ссылке можно скачать вышестоящий, | ||
Строка 25: | Строка 32: | ||
# проверка какая то | # проверка какая то | ||
openssl verify < | openssl verify < | ||
+ | |||
# Перчень установленных сертов в системе | # Перчень установленных сертов в системе | ||
awk -v cmd=' | awk -v cmd=' | ||
</ | </ | ||
+ | |||
[[https:// | [[https:// | ||
Строка 37: | Строка 46: | ||
# Проверка закрытого ключа | # Проверка закрытого ключа | ||
openssl rsa -in server.key -check | openssl rsa -in server.key -check | ||
- | |||
</ | </ | ||
- | |||
- | |||
Строка 72: | Строка 78: | ||
- | ===== Установка сертификата | + | ==== Установка сертификата ==== |
<code bash> | <code bash> | ||
trust list | trust list | ||
Строка 85: | Строка 91: | ||
- | ===== Форматы | + | ==== Форматы ==== |
< | < | ||
< | < | ||
Строка 130: | Строка 136: | ||
</ | </ | ||
</ | </ | ||
+ | |||
+ | |||
+ | |||
+ | < | ||
+ | < | ||
+ | |||
+ | Для подписи используем сторонний ЦС, на своей стороне, | ||
+ | После получаем подписанный, | ||
+ | Корневой сертификат так же получаем от ЦС\\ | ||
+ | |||
+ | <code bash> | ||
+ | # Из файла с запросом генерируем закрытый ключ | ||
+ | openssl req -new -newkey rsa:2048 -keyout my_cert.key -out my_cert.csr -config req.txt | ||
+ | |||
+ | # ==== Подпись, | ||
+ | |||
+ | # Из закрытого, | ||
+ | openssl pkcs12 -export -in my_cert.crt -inkey my_cert.key -out my_cert.p12 -name SARM_PD10 -CAfile my_cert_ca.crt -caname MY.RU -passout pass:123 | ||
+ | |||
+ | # Из ключевой пары генерируем JKS | ||
+ | keytool -importkeystore -srckeystore my_cert.p12 -srcstoretype PKCS12 -destkeystore my_cert.jks -deststoretype JKS -alias " | ||
+ | |||
+ | # Из корневого ключа генерируем Truststore | ||
+ | keytool -import -alias MYCERT -file my_cert_ca.crt -keystore my_cert_truststore.jks -noprompt -deststorepass 123 -deststoretype JKS | ||
+ | </ | ||
+ | |||
+ | Пример файла с запросом\\ | ||
+ | < | ||
+ | [req] | ||
+ | default_bits = 2048 | ||
+ | distinguished_name = req_distinguished_name | ||
+ | req_extensions = req_ext | ||
+ | prompt = no | ||
+ | |||
+ | [req_distinguished_name] | ||
+ | C = RU | ||
+ | O = MY_COMP | ||
+ | commonName = example.ru | ||
+ | |||
+ | [req_ext] | ||
+ | subjectAltName = @alt_names | ||
+ | keyUsage=digitalSignature, | ||
+ | extendedKeyUsage=serverAuth | ||
+ | |||
+ | [alt_names] | ||
+ | DNS.1 = first.example.ru | ||
+ | DNS.2 = second.example.ru | ||
+ | DNS.3 = *.example.ru | ||
+ | </ | ||
+ | |||
+ | </ | ||
+ | |||
+ | |||