Преобразование файла pfx для Google App Engine - PullRequest
0 голосов
/ 17 декабря 2018

Я потратил несколько дней на поиски ответа, но безуспешно, поэтому решил спросить здесь.

Моя проблема в том, что я не могу добавить сертификат SSL в Google Cloud App Engine,Я пытаюсь добавить ssl-сертификат, спровоцированный шведской системой идентификации банков, чтобы интегрировать их услуги с моим бэкэндом.Они имеют API для отдыха в целях тестирования и предоставляют сертификат для API.

Сертификат имеет форму .pfx, и для его импорта в Google Cloud App Engine мне нужно извлечь два ключа:

  • Сертификат открытого ключа X.509 в кодировке PEM
  • незашифрованный ключ RSA в кодировке PEM

Поскольку я нахожусь в Ubuntu и у меня есть легкий доступ к openssl, я пробовал использовать эти команды:

openssl pkcs12 -in Server.pfx -nodes -nokeys -out certificate.pem
openssl pkcs12 -in Server.pfx -nodes -nocerts -out key.pem
openssl rsa -in key.pem -out key2.pem -outform pem 

При использовании публичного сертификатаиз ceriticate.pem и частного ключа RSA из key2.pem я получаю эту ошибку:

Данные сертификата недействительны.Убедитесь, что закрытый ключ и открытый сертификат совпадают.

Я пытался поэкспериментировать с несколькими другими командами openssl, но это всегда приводило к этой ошибке.

Я что-то не так делаю?Я предоставлю дополнительную информацию, если это необходимо.


Ответ на первый комментарий:

Содержимое файла Certificate.pem начинается с:

----- НАЧАТЬ СЕРТИФИКАТ-----

Что касается файла key2.pem, он начинается с:

----- BEGIN RSA PRIVATE KEY -----

Как примечание: файл ceritficate.pem содержит атрибуты Bag, строки темы и издателя перед заголовком ----- BEGIN CERTIFICATE -----, но когда я пытаюсь импортировать весь файл, я получаюошибка о том, что:

Выбранный вами публичный сертификат не является действительным.

, поэтому я пропускаю эти строки.


В ответ на первый ответ именно это я и делал.Файл certificate.pem содержит только один раздел, заключенный в ----- НАЧАТЬ СЕРТИФИКАТ ----- и ----- КОНЕЦ СЕРТИФИКАТА ----- .Поэтому я копирую эти строки (включая строки BEGIN и END) и получаю первую ошибку, описанную выше.

Ответы [ 2 ]

0 голосов
/ 26 марта 2019

В соответствии с документацией вы можете настроить SSL-сертификаты с различными средами выполнения [1].Я рекомендую взглянуть на эту документацию, где вы можете найти ценную информацию.Я бы также предложил обратиться в центр сертификации, предоставивший вам эти сертификаты, чтобы получить дополнительную помощь.

[1] https://cloud.google.com/appengine/docs/standard/python/securing-custom-domains-with-ssl

0 голосов
/ 18 декабря 2018

Ваш комментарий о том, что ваш сертификат имеет Bag Attributes, является вашей проблемой.Ваш закрытый ключ выглядит правильно (PKCS # 1).

Ваш файл сертификата является составным файлом, который содержит несколько сертификатов.Обычно первым сертификатом является тот, который вы хотите (ваш сертификат SSL).Другие сертификаты предназначены для промежуточных центров сертификации.

Откройте файл certificate.pem в текстовом редакторе (например, используйте VI).Затем найдите строки, которые начинаются с subject=.Если вы видите имя (доменное имя, название компании) вашего сертификата в строке, это то, что вам нужно.Сохраните все от ----- BEGIN CERTIFICATE----- до -----END CERTIFICATE-----.Другие сертификаты будут иметь название центра сертификации в subject=.

Примечание. Вам могут также потребоваться другие сертификаты (зависит от того, используете ли вы крупную компанию или нет).В этом случае для каждого из других сертификатов скопируйте каждый из BEGIN / END в один файл с именем intermediate.pem.Вам не нужен раздел Bag Attribute.

Другой вариант - хранить сертификаты в одном файле.Откройте certifcate.pem и удалите разделы Bag Attributes (удалите все между -----END CERTIFICATE----- и -----BEGIN CERTIFICATE-----).

...