Я настраиваю центр сертификации для интрасети. Существует корневой сертификат, который будет установлен на всех сетевых машинах, промежуточный сертификат, подписанный корнем, и сертификат HTTP-сервера, подписанный промежуточным звеном.
Мне нужно связать http и промежуточные сертификаты, чтобы они были проверены корнем
#> cat intermediate.crt server.crt > both.crt
#> openssl verify -CAfile root.crt both.crt
OK
Однако я не могу использовать both.crt
и server.private.key
для внутреннего веб-сайта, потому что при запуске apache:
Certificate and private key mysite.com:443:0 from /www/both.crt and /www/server.private.key do not match
Это потому что intermediate.crt
это первая запись в both.crt
. Если я переключу порядок server.crt
и intermediate.crt
затем запускается apache, но both.crt
не будет подтверждать против root.crt
.
Требование состоит в том, чтобы root.crt
установлен постоянно, но server.crt
и intermediate.crt
могут быть изменены и должны обслуживаться apache. Как создать пакет сертификатов, который принимает apache?
Поместите сертификат сервера в качестве аргумента в SSLCertificateFile
директиву и файл, содержащий все подчиненные CA, за исключением корневого CA, в качестве аргумента для SSLCertificateChainFile
. Наконец, закрытый ключ для сертификата вашего сервера в качестве аргумента SSLCertificateKeyFile
:
SSLCertificateFile /etc/pki/tls/certs/server.pem
SSLCertificateChainFile /etc/pki/tls/certs/bundle.pem
SSLCertificateKeyFile /etc/pki/tls/private/server.key