Содержание

OpenSSL

rand

Генерирует последовательность случайных байтов

  # Случайная строка (10 символов)
openssl rand -hex (base64) 10 

Получение сертификата

Можно получить/скачать сертификат с указанного сайта

  # Просмотреть сведения о сертификате
openssl s_client -connect deeplay.enterprise.slack.com:443
  # Для postgres
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
  # Далее можно импортировать его например в Java
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
  # Узнать кто выдал сертификат
  # далее, по указанной ссылке можно скачать вышестоящий, просто wget
openssl x509 -in <certificate.pem> -text -noout | grep -i issuer
  # проверка какая то
openssl verify <certificate.pem>
  # Перчень установленных сертов в системе
awk -v cmd='openssl x509 -noout -subject' ' /BEGIN/{close(cmd)};{print | cmd}' < /etc/ssl/certs/ca-certificates.crt

keytool gui утилита

  # Содержимое хранилища
keytool -list [-v] -keystore kafka.keystore.p12 (или .jks) [-storepass passwd]
  # Экспорт содержащегося серта в файл
keytool -exportcert -keystore kafka.keystore.p12 -alias myCert -file toFile.cer
  # Импорт
keytool -importcert -keystore kafka.keystore.jks -alias first -file first.cer
  # Для создания нового контейнера, нужно просто указать несуществующий файл, создастся
 
  # Удаление серта
keytool -delete -alias <my-name> -keystore <my-name>
:!: Про jks

Работа с контейнером для джавы
Есть пароль для контейнера, есть пароли для сертов, могут совпадать, тогда меньше гемора
Бывает так что показывает только те серты, что подходт под введенный пароль
При запуске джарки, есть такие аргументы для задания параметров

  1. Djavax.net.ssl.keyStore=cert.jks
  2. Djavax.net.ssl.keyStorePassword=changeit
  3. Djavax.net.ssl.trustStor=cacerts
  4. Djavax.net.ssl.trustStorePassword=changeit

Установка сертификата

trust list
sudo cp mycert.crt /usr/share/pki/ca-trust-source/anchors/
sudo update-ca-trust
 
	# debian
sudo cp mycert.crt /usr/local/share/ca-certificates/
sudo update-ca-certificates

Форматы

:!: PEM

PEM - наиболее распространенный формат для X.509 сертификаты, CSRи криптографические ключи. Файл PEM представляет собой текстовый файл, может содержать сертификат конечного объекта, закрытый ключ или несколько сертификатов
PEM файлы обычно видны с расширениями .crt, .pem, .cer, и .key (для закрытых ключей), возможно и что нить типа «.ca-bundle»

Выглядит например так

-----BEGIN CERTIFICATE-----
MIIH/TCCBeWgAwIBAgIQaBYE3/M08XHYCnNVmcFBcjANBgkqhkiG9w0BAQsFADBy
MQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMxEDAOBgNVBAcMB0hvdXN0b24x
(...)
-----END CERTIFICATE-----