Назад | Перейти на главную страницу

Apache не принимает ключ для сертификата, если этот сертификат связан с его издателем

Я настраиваю центр сертификации для интрасети. Существует корневой сертификат, который будет установлен на всех сетевых машинах, промежуточный сертификат, подписанный корнем, и сертификат 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