Генерирует последовательность случайных байтов
# Случайная строка (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>
Работа с контейнером для джавы
Есть пароль для контейнера, есть пароли для сертов, могут совпадать, тогда меньше гемора
Бывает так что показывает только те серты, что подходт под введенный пароль
При запуске джарки, есть такие аргументы для задания параметров
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 - наиболее распространенный формат для X.509 сертификаты, CSRи криптографические ключи. Файл PEM представляет собой текстовый файл, может содержать сертификат конечного объекта, закрытый ключ или несколько сертификатов
PEM файлы обычно видны с расширениями .crt, .pem, .cer, и .key (для закрытых ключей), возможно и что нить типа «.ca-bundle»
Выглядит например так
-----BEGIN CERTIFICATE----- MIIH/TCCBeWgAwIBAgIQaBYE3/M08XHYCnNVmcFBcjANBgkqhkiG9w0BAQsFADBy MQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMxEDAOBgNVBAcMB0hvdXN0b24x (...) -----END CERTIFICATE-----
#!/bin/bash mkdir -p certs cd certs # create self signed root CA openssl genrsa -out test_ca.key 4096 openssl req -x509 -new -nodes -key test_ca.key -sha256 -days 1024 -subj "/C=RU/ST=SR/O=Org Test Root CA, Inc./CN=Test Root CA" -out test_ca.crt # create test key and csr for app openssl genrsa -out test_app.key 4096 openssl req -new -sha256 -key test_app.key -subj "/C=RU/ST=SR/O=Org Test APP, Inc./CN=client.app.org" -out test_app.csr # sign test cert by CA for APP openssl x509 -req -in test_app.csr -CA test_ca.crt -CAkey test_ca.key -CAcreateserial -out test_app.crt -days 3650 -sha256 echo "DONE!"