Клиент SSL с Сам CA Со знаком, не работающий

Я боролся с проблемой SSL больше 1 месяца.

Мы использовали openssl для генерации нашего собственного CA, сервера и клиентских сертификатов. Мы имеем, также включают "SSLrequire" на веб-сервере Apache (в htaccess, это может быть неправильно), что означает, что любой пытающийся соединяться через https на сервере должен представить действительный сертификат

Шаг следующим образом;

  • генерируйте ключ CA
  • генерируйте CSR CA
  • подпишите CSR CA с Ключом CA

таким образом, у нас есть наш собственный CA, который используется для подписания нашего сервера и клиентских сертификатов.

следующий шаг

  • генерируйте ключ сервера
  • генерируйте сервер CSR
  • сервер знака CSR с Ключом CA

Таким образом, у нас есть наш сертификат сервера и закрытый ключ сервера, который мы установили успешно на сервере

Затем мы

  • генерируйте клиентский ключ
  • генерируйте клиент CSR
  • заключите контракт с клиентом CSR с Ключом CA

Мы затем распределяем клиентский сертификат нашим пользователям вместе с сертификатом CA. Оба были установкой в их браузерах.

При попытке соединиться мы добрались, "Коллега не распознает и доверяет CA, который выпустил сертификат". ошибка.

Мы определили проблему, являющуюся, который сам подписал, сертификат CA не был установлен на сервере. Обычно сервер представит список доверенного CA к устройству, пытающемуся соединяться с ним, и устройство должно будет отправить сертификат, который был подписан любой Аварией, которую представил сервер. Но начиная с нашего сам подписался, сертификат CA не был установлен на сервере, браузер мог представить сертификат, который будет приемлем сервером.

Таким образом, мы пошли на установку сертификат CA на сервере - панель управления Hsphere.

Мы взяли содержание сертификата CA и скопировали его в "текстовой области" Файла Центра сертификации на сервере, и сервер не примет, что он каждый раз жалоба "Неудавшегося обновляет Конфигурацию SSL Другой ключ и сертификат"

Сертификат CA был подписан отдельно поэтому, как сервер может сказать, что сертификат и ключ отличаются.

Мы также пытались скопировать содержание и файла сертификата CA и файла ключей CA в "текстовую область" Файла Центра сертификации, но это также не будет работать.

Как я сказал, мы боролись с этим больше одного месяца. Если бы кто-либо может помочь, который действительно ценился бы. Если мы должны заплатить за сервис, сообщите нам.

Заранее спасибо.

8
задан icarus 13 August 2010 в 11:21
поделиться

1 ответ

(Возможно, https://serverfault.com/ лучше ответить на этот вопрос.)

Вот несколько параметров, которые вы можете использовать в конфигурации Apache Httpd (я не уверен, как это сопоставлено с вашей панелью конфигурации).

SSLCertificateFile      /etc/ssl/certs/host.pem
SSLCertificateKeyFile   /etc/ssl/private/host.key
SSLCACertificatePath    /etc/ssl/certs/trusteddir
#SSLCACertificateFile   /etc/ssl/certs/trustedcert.pem
#SSLCADNRequestFile     /etc/ssl/certs/advertisedcas.pem

SSLCertificateFile и SSLCertificateKeyFile - основные требования для включения SSL на вашем сервере.

Поскольку вам нужна проверка подлинности сертификата клиента, вам необходимо настроить один из SSLCACertificatePath (для каталога) или SSLCACertificateFile (для файла), чтобы указать, каким центрам сертификации вы хотите доверять. , так что добавьте туда свой сертификат CA. Это должны быть файлы в формате PEM. Любой сертификат в нем будет считаться доверенным (хотя может потребоваться базовое ограничение CA, я не могу вспомнить, это вполне стандартно, если вы все равно сами сгенерировали сертификат корневого CA).

В дополнение к этому вы можете поместить сертификаты в SSLCADNRequestFile .В этом нет необходимости, поскольку он заполняется автоматически из директив сертификата SSLCACertificatePath или SSLCACertificateFile , но если вы хотите получить больший контроль над списком центров сертификации, которые сервер может принять, это где это делать. Чтобы прояснить, это не то, что управляет доверием к клиентским сертификатам, а только то, что сервер заявляет, что он может доверять, поэтому вам все равно понадобится SSLCACertificatePath или SSLCACertificateFile . Возможно, вы «Файл центра сертификации» на панели конфигурации управляете этим параметром, а не одним из двух других параметров.

Один из способов отладить это - сделать это в командной строке:

echo | openssl s_client -showcerts -connect www.your.host.example:443

Здесь должна быть указана цепочка сертификатов, которую вы представляете первой (было бы хорошо, если бы она представляла всю цепочку до CA, как кажется некоторым клиентам нужно было иногда, насколько я помню). Затем он должен перечислить центры сертификации, которые он готов принять для аутентификации сертификата клиента, или В противном случае имена CA сертификатов клиента не отправлены (в этом случае возникает проблема с одной из директив, упомянутых выше). Это даст вам хотя бы представление о том, как были настроены SSLCADNRequestFile или SSLCACertificatePath / SSLCACertificateFile (хотя последние два имеют значение).

13
ответ дан 5 December 2019 в 12:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: