mod_ssl SSLCACertificatePath Правильное использование или как лучше всего обрабатывать несколько допустимых сертификатов CA.

9

Я пытаюсь использовать директиву mod_proxy SSLCACertificatePath, но я немного запутался, как правильно ее использовать.

Вот две ссылки, объясняющие директиву SSLCACertificatePath:
http://httpd.apache.org/docs/2.0/mod/mod_ssl.html#sslcacertificatepath
http://www.modssl.org/docs/2.8/ssl_reference.html#ToC13

Я не уверен, как создавать хешированные символические ссылки. Вторая ссылка указывает на использование файла apache make, но я совершенно не понимаю, что именно там говорится.

Любое дружеское руководство будет с благодарностью.

Спасибо за ваше время.

ОБНОВИТЬ

Цель моего вопроса состояла в том, чтобы выяснить, как обрабатывать несколько ЦС для проверки клиентских сертификатов конечного пользователя. Я не осознавал, что несколько сертификатов pem могут использоваться в одном файле, что, в моем случае, является правильным способом продвижения вперед.

hooknc
источник

Ответы:

5

Если вы не знаете, как создать символьные ссылки с хеш-именами, я предлагаю не использовать CACertificatePath, а использовать CACertificateFileвместо них. (На самом деле это мое предложение в целом: правильное обслуживание CACertificateFile может быть немного более трудоемким, если у вас много сертификатов CA, которые часто меняются, но у вас, вероятно, не должно быть много сертификатов CA, и они в любом случае не должны сильно меняться.) .) Кроме того, похоже, что указанный Makefile исчез из дистрибутивов Apache (и общее отсутствие публичного протеста может указывать на то, сколько людей используют «путь» для хранения сертификатов :).

Все это говорит о том, что если вы все еще хотите сделать это, вы можете действовать в соответствии с тем, что сказал DerfK (либо получить старый Makefile, либо написать свой собственный скрипт / make-файл, который работает openssl x509 -noout -hashсо всеми файлами сертификатов и создает символические ссылки с соответствующими именами).

voretaq7
источник
Спасибо за ваш ответ. К сожалению, у нас будет несколько сертификатов CA, и они будут меняться. Знаете ли вы, как иметь несколько сертификатов в одном файле? Это так же просто, как вырезать и вставить сертификат из одного файла в другой файл, который имеет все сертификаты?
hooknc
1
На самом деле это так же просто, как вырезание и вставка - раньше ca-bundle.crtв Apache 1.x был включен модуль mod_ssl (и до сих пор доступен на certifie.com/ca-bundle/ca-bundle.crt.txt ). Для вашего удобства я бы прокомментировал этот файл, чтобы вы могли сказать, какой блок сертификатов принадлежит какому ЦС, если / когда вам потребуется изменить их позже.
voretaq7
Фантастические новости. Скорее всего, мы будем двигаться вперед с этим решением. К счастью, за создание этого файла .crt будет отвечать кто-то другой. Еще раз спасибо за ваше время.
hooknc
4

Я нашел открытую ошибку по этому поводу. Кроме загрузки старого выпуска modssl.org, упомянутого в сообщении об ошибке, и получения из него файла Makefile, кажется, что вы можете получить значение хеша, openssl x509 -in foo.crt -noout -hashхотя неясно, на что ссылается часть «.N» (возможно, это было для коллизии хеша (например, первый сертификат с хешем 12345678 имеет символическую ссылку 12345678.1, указывающую на него, второй сертификат, имеющий тот же хэш, использует .2? Или, возможно, он начинается с .0?)

Если вы получите Makefile.crtфайл из старого modssl, я думаю, что вы сделаете это, поместите его в папку со всеми вашими сертификатами и запустите make -f Makefile.crtв этой папке.

DerfK
источник
Спасибо за ваш ответ. Указание на это сообщение об ошибке действительно помогло. Вот прямая ссылка для загрузки ресурса, упомянутого в сообщении об ошибке: modssl.org/source/mod_ssl-2.8.31-1.3.41.tar.gz Я посмотрел файл Makefile.crt и считаю, что вы правы по схеме нумерации, но я не очень хорош в * nix-скриптах. <hash> .1, <hash> .2, <hash> .3 и т. д ... Я попытался использовать команды, которые вы рекомендовали, а затем символическую ссылку, названную как хэш, и все, казалось, работало. Мне придется попробовать несколько файлов CA сейчас.
hooknc
1
Нумерация начинается с .0.
Раман
1
Вот Makefileуже извлеченный из tar.gz: gist.github.com/rocketraman/9228a42b78e094b3c2218f6e57844ee0
Раман
Запуск make -f Makefile.crtв папке с сертификатами выдает Makefile.crt ... Skippedошибку.
Серьезное