Назад | Перейти на главную страницу

Как автоматизировать экспорт сертификата в формате DER для сайта?

Я хотел бы автоматизировать следующий процесс с помощью команды openssl:

Я работаю по строкам следующей команды (здесь завернутой в python):

local ("echo -n | openssl s_client -connect google.com:443 -certform DER | sed -ne '/ -BEGIN CERTIFICATE - /, / - END CERTIFICATE- / p'> /tmp/google.com.der")

но это не дает мне того, чего я ожидаю.

Ваш sed команда только захватывает openssl s_clientстандартный вывод, но сертификат поставляется с другой отладочной информацией о стандартной ошибке. Вы пробовали что-то подобное?

openssl s_client -connect google.com:443 </dev/null 2>&1 |
  sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' |
  openssl x509 -outform DER >/tmp/google.com.der

Вы, наверное, видите строки, которые openssl выходы на stderr и игнорируются sed. Вы можете просто избавиться от них перед передачей вывода в sed:

% echo | openssl s_client -connect google.com:443 -certform DER 2>/dev/null | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p'
-----BEGIN CERTIFICATE-----
MIIF/DCCBWWgAwIBAgIKUCYyawAAAAB1rzANBgkqhkiG9w0BAQUFADBGMQswCQYD
...
v6UdT7iXlxVh2oslpIksSw2bf0H7PUQQjFCMLVbiEMAQbXal4+SsyYB+GsPVvlR+
-----END CERTIFICATE-----