Создание одного файла.pem для веб-сервера SSL
Для использования SSL используемому веб-серверу требуется местоположение одного файла.pem (-ssl_cert xyz.pem).
У меня есть сертификат, выданный GoDaddy. Они дали мне файл:
banana.crt
Предыдущий запрос сертификата был создан с использованием сгенерированного мной закрытого ключа
banana.key
Похоже, поиск в Google позволяет предположить, что создать файл.pem так же просто, как объединить их.
кот banana.key banana.crt> banana.pem
К сожалению, запуск сервера с banana.pem и посещение его с Safari говорит мне:
Выдано: Go Daddy Secure Certificate Authority
Этот сертификат был подписан неизвестным органом
Что не так? Я или GoDaddy испортили что-то при создании сертификата, или я должен каким-то образом смешать что-то отсюда с моим файлом.pem?
Я посещаю с полностью обновленной установкой OS X Leopard + Safari.
3 ответа
В зависимости от того, какой тип сертификата у вас есть, перейдите на https://certs.godaddy.com/Repository.go и загрузите соответствующую промежуточную цепочку сертификатов (один из .crt
файлы, скорее всего, этот). Вставьте это в свой файл PEM вместе с вашим собственным сертификатом и ключом.
Ваше творение .pem
файл в порядке. Если это не так, то HTTP-сервер вряд ли запустится.
Предполагая, что у вас есть корневой сертификат GoDaddy в доверенных сертификатах вашего браузера, то сертификат, который они вам предоставили, называется так называемым "цепочечным" сертификатом. Это означает, что он не был подписан напрямую их корнем. Он подписан промежуточным центром сертификации, который сам по себе подписан корнем.
Чтобы ваш браузер доверял цепочечному сертификату, ему необходимо знать все сертификаты в цепочке. В Apache это достигается с помощью SSLCertificateChainFile
директива, которая отправляет другие сертификаты в цепочке клиенту во время процесса рукопожатия SSL.
Вам нужно будет найти замену этой директиве в Mongoose. Руководство не появляется, чтобы указать, как. Вы можете обнаружить, что размещение сертификата (ов) цепи в конце PEM поможет.