(Возможно, 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
(для файла), чтобы указать, каким ЦС вы хотите доверять, поэтому добавьте туда свой сертификат ЦС. Это должны быть файлы в формате PEM. Любой сертификат там будет считаться доверенным (хотя, возможно, он должен иметь базовое ограничение CA, я не помню, это вполне стандартно, если вы все равно сгенерировали сертификат корневого CA).
В дополнение к этому вы можете поместить сертификаты в SSLCADNRequestFile
. В этом не должно быть необходимости, поскольку оно заполняется автоматически из директив сертификата SSLCACertificatePath
или SSLCACertificateFile
, но если вы хотите получить больший контроль в списке CA, то сервер объявляет, что может принять его, вот где это нужно сделать. Просто чтобы прояснить, это не то, что управляет доверием клиентских сертификатов, а то, что сервер может рекламировать, которому он может доверять, поэтому вам все еще нужно SSLCACertificatePath
или SSLCACertificateFile
. Возможно, вы "Файл центра сертификации" на своей панели конфигурации управляете этим, а не одним из двух других вариантов.
Один из способов отладки это сделать это из командной строки:
echo | openssl s_client -showcerts -connect www.your.host.example:443
Это должно перечислить цепочку сертификатов, которую вы представляете первой (было бы хорошо, чтобы она представляла всю цепочку до ЦС, поскольку некоторым клиентам, насколько я помню, иногда она нужна). Затем в нем должны быть перечислены CA, которые он готов принять для аутентификации по сертификату клиента, или Имена CA сертификатов клиентов не отправляются в противном случае (в этом случае возникает проблема с одной из упомянутых выше директив). Это даст вам, по крайней мере, представление о том, как были настроены SSLCADNRequestFile
или SSLCACertificatePath
/ SSLCACertificateFile
(хотя важны последние два).