Я пытаюсь реализовать Шпилька в качестве точки завершения SSL перед HAProxy в качестве доказательства концепции маршрутизации WebSockets. Регистратор моего домена Gandi.net предлагает бесплатные SSL-сертификаты сроком на 1 год.
Через OpenSSL я сгенерировал CSR, который дал мне два файла:
Я передал domain.csr своему доверенному лицу, и они дали мне два файла:
Здесь я столкнулся с трением: Stud, которая использует OpenSSL, ожидает, что в «pem-файле» будет «закрытый ключ rsa», который он описывает как «файл сертификата SSL x509. ТРЕБУЕТСЯ».
Если я добавлю domain.key в конец pem-файла Stud, Stud запустится, но я получаю предупреждение браузера с надписью «Сертификат самоподписанный». Если я опущу domain.key, Stud не запустится и выдаст ошибку, вызванную функцией OpenSSL, которая, как представляется, предназначена для определения того, содержит ли мой «pem-файл» «закрытый ключ RSA».
На данный момент я не могу определить, в чем проблема:
Файл сертификата SSL X509 - это файл, содержащий сертификат в формате, указанном ITU в их спецификациях серии X, а именно x.509. Здесь нет информации о закрытом ключе, поскольку это формат сертификата, поэтому туда входят такие вещи, как имена, открытые ключи, подписи, даты действия и другие полезности, но не закрытые ключи.
PEM - это набор спецификаций для Privacy Enhanced Mail - он предлагает по большей части стандарты упаковки, которые построены на спецификациях PKCS (спецификации PKCS были разработаны RSA и сами лаборатории RSA для публичного использования, чтобы обеспечить взаимодействие между различными реализациями - это было сделано снова IETF и сообществом на других аренах). Вы можете использовать openssl для преобразования форматов - см. Здесь http://www.openssl.org/docs/apps/openssl.html . Конкатенация вам не поможет.
Если сертификат самоподписан, то это странно, что CA дал его вам - это заставляет меня думать, что вы рассказываете о передаче сертификата Gandi CA в openssl, который сообщает вам, что сертификат самоподписан (следовательно, это сертификат корневого или конечного объекта, но не промежуточный сертификат цепи).
Чтобы ответить на некоторые из ваших вопросов: 1 Самоподписанные сертификаты всегда будут генерировать предупреждения у хороших клиентов, потому что им не хватает доверия, пока пользователь не решит, что они заслуживают доверия (или для большинства пользователей ... пока Microsoft, Mozilla Foundation, Google или Opera) не решат пользователя должен доверять этому CA). Если у ваших клиентов (браузеров или чего-то еще) есть CA, сохраненный и отмеченный как доверенный, это предупреждение не появится. 2 Возможно 3 Похоже, вы использовали правильный ключ и CSR с Gandi 4 Мне кажется, вам нужно загрузить ключ домена, сертификат и, возможно, CA в OpenSSL либо через конфигурацию доверия на уровне ОС, либо через конфигурацию Stud.