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

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


linux:openssl

Различия

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

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

Предыдущая версия справа и слева Предыдущая версия
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:443 openssl s_client -connect deeplay.enterprise.slack.com:443
 +
   # Для 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 '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > /tmp/newfile.crt echo -n | openssl s_client -connect site.ru:443 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > /tmp/newfile.crt
 +
   # Далее можно импортировать его например в Java   # Далее можно импортировать его например в Java
 keytool -import -trustcacerts -keystore /usr/lib/jvm/bellsoft-java8-full.x86_64/jre/lib/security/cacerts \ keytool -import -trustcacerts -keystore /usr/lib/jvm/bellsoft-java8-full.x86_64/jre/lib/security/cacerts \
    -storepass changeit -noprompt -alias slack_notify -file /tmp/slack_notify.crt    -storepass changeit -noprompt -alias slack_notify -file /tmp/slack_notify.crt
 +
   # Узнать кто выдал сертификат   # Узнать кто выдал сертификат
   # далее, по указанной ссылке можно скачать вышестоящий, просто wget   # далее, по указанной ссылке можно скачать вышестоящий, просто wget
Строка 25: Строка 32:
   # проверка какая то   # проверка какая то
 openssl verify <certificate.pem> openssl verify <certificate.pem>
 +
   # Перчень установленных сертов в системе   # Перчень установленных сертов в системе
 awk -v cmd='openssl x509 -noout -subject' ' /BEGIN/{close(cmd)};{print | cmd}' < /etc/ssl/certs/ca-certificates.crt awk -v cmd='openssl x509 -noout -subject' ' /BEGIN/{close(cmd)};{print | cmd}' < /etc/ssl/certs/ca-certificates.crt
 </code> </code>
 +
  
 [[https://gist.github.com/Hakky54/b30418b25215ad7d18f978bc0b448d81|Cheat Sheet]]\\ [[https://gist.github.com/Hakky54/b30418b25215ad7d18f978bc0b448d81|Cheat Sheet]]\\
Строка 37: Строка 46:
 # Проверка закрытого ключа # Проверка закрытого ключа
 openssl rsa -in server.key -check openssl rsa -in server.key -check
- 
 </code> </code>
- 
- 
  
  
Строка 72: Строка 78:
  
  
-===== Установка сертификата =====+==== Установка сертификата ====
 <code bash> <code bash>
 trust list trust list
Строка 85: Строка 91:
  
  
-===== Форматы =====+==== Форматы ====
 <details> <details>
 <summary>:!: PEM </summary> <summary>:!: PEM </summary>
Строка 130: Строка 136:
 </code> </code>
 </details> </details>
 +
 +
 +
 +<details>
 +<summary>:!: Генерация, подпись, сбор в комплекты</summary>
 +
 +Для подписи используем сторонний ЦС, на своей стороне, с помощью файла "req", формируем закрытый ключ и запрос на подпись\\
 +После получаем подписанный, открытый ключ, далее собираем в ключевую пару и JKS-ники\\
 +Корневой сертификат так же получаем от ЦС\\
 +
 +<code bash>
 +# Из файла с запросом генерируем закрытый ключ
 +openssl req -new -newkey rsa:2048 -keyout my_cert.key -out my_cert.csr -config req.txt
 +
 +# ==== Подпись, генерация открытого ключа ====
 +
 +# Из закрытого, открытого и корневого сертов, генерируем ключевую пару (.p12)
 +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 "MYCERT" -destalias "MYCERT" -srcstorepass 123 -deststorepass 123
 +
 +# Из корневого ключа генерируем Truststore
 +keytool -import -alias MYCERT -file my_cert_ca.crt -keystore my_cert_truststore.jks -noprompt -deststorepass 123 -deststoretype JKS
 +</code>
 +
 +Пример файла с запросом\\
 +<code>
 +[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, keyEncipherment
 +extendedKeyUsage=serverAuth
 +
 +[alt_names]
 +DNS.1 = first.example.ru
 +DNS.2 = second.example.ru
 +DNS.3 = *.example.ru
 +</code>
 +
 +</details>
 +
 +
  
  
  
  
linux/openssl.txt · Последнее изменение: 2025/04/04 13:10 — admin