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

SSL-сертификат IS (промежуточный центр) в App Engine

У меня был веб-сайт, работающий под одним доменным именем в AppEngine, и SSL работал, как ожидалось. Однако я переключился на другое доменное имя, и мне не удалось заставить работать SSL.

Когда я перехожу к загрузке сертификата, у меня запрашивается файл сертификата «PEM, закодированный X.509» и файл закрытого ключа «Unencrypted PEM encoded RSA».

В последнем домене я просто подключил CRT и закрытый ключ. В этом ключе написано «----- НАЧАТЬ ЧАСТНЫЙ КЛЮЧ -----» вверху и не означает, что это ключ RSA, но это не имело значения. Если это важно, я сгенерировал ключ / CSR с помощью командной строки:

openssl req -new -nodes -keyout abc.com.key -out abc.com.csr -newkey rsa:2048

Однако с этим новым доменом я предоставлю CRT (который на самом деле представляет собой объединенные CRT и IA в этом порядке) и файл ключа. Ключ не имеет парольной фразы, и все они выглядят в формате PEM (стандартный, закодированный файл ASCII, верно?).

Однако я получаю сообщение об ошибке: «И закрытый ключ, и сертификат SSL должны быть в незашифрованном формате PEM». В прошлый раз этого не было.

Другой сайт сказал, что мне нужно запустить следующее, чтобы создать ключ, который может использовать AppEngine:

openssl rsa -in abc.com.key -text > abc.com.key.pem

Однако я не знаю разницы между этими двумя форматами, и новый файл имеет модуль, экспоненты, простые числа и коэффициент вверху, за которым следует «BEGIN RSA PRIVATE KEY BLOCK». При этом теперь я могу загрузить исходный CRT и этот новый файл ключей.

Это моя первая проблема (я не понимаю, что делаю здесь).

Моя вторая проблема заключается в том, что сертификат IA игнорируется: AppEngine указывает, что я загрузил только один сертификат (где-то я видел, что он должен указывать на два сертификата). Когда я загружаю IA и новый ключ по отдельности, я получаю сообщение об ошибке: «Загруженный закрытый ключ не соответствует сертификату SSL. Пожалуйста, загрузите соответствующий ключ».

Последнее, очевидно, является большей ошибкой. Я получаю некоторые ошибки проверки SSL от Python, но не от браузеров.

Буду признателен за любой совет по этому поводу.

Независимо от того, что было с предыдущими версиями администратора, если он действительно изменился, мы должны запустить вторую команду, указанную выше ("openssl rsa -in abc.com.key -text> abc.com.key .pem ").

Моя интерпретация прочитанного была неверной. AppEngine будет указывать только, что один слот сертификата был использован, когда то, что загружено, является объединенным обычным сертификатом и сертификатом IA.

AppEngine может применить изменения с задержкой до часа (во всех системах).

Я считаю, что задержка распространения была объединена с некоторым кешированием в браузерах, чтобы получить значительно противоречивые результаты.

Используя «openssl s_client abc.com -servername abc.com», я увидел гораздо более честные результаты, а также увидел, что два сертификата были настроены в цепочке, как и ожидалось.