Какова техническая причина, по которой SSLCertificateKeyFile необходим (закрытый ключ)? Где это используется и для чего?Зачем нужен SSLCertificateKeyFile для Apache?
ответ
Файл сертификата SSL содержит сертификат X.509 (который, в свою очередь, содержит открытый ключ, используемый для шифрования). Сертификат SSL Ключ Файл содержит закрытый ключ, соответствующий открытому ключу сертификата. Для того чтобы веб-сервер шифровал и, дешифровать трафик, он должен иметь как открытый ключ (сертификат), так и соответствующий закрытый ключ. Apache, в отличие от многих других серверных продуктов, хранит ключ и сертификат в отдельных файлах. Например, продукты на основе Java обычно используют файлы Java KeyStore, которые являются зашифрованной базой данных, содержащей как сертификат, так и закрытый ключ.
Для обзора криптографии с открытым ключом, в том числе использования закрытых ключей:
http://en.wikipedia.org/wiki/Public-key_cryptography#How_it_works
И подробной разбивки всех шагов, используемых в TLS, протокол сервер использует для HTTPS-трафика, который показывает, где именно привыкает закрытый ключ:
Обычно есть три директивы включены:
SSLCertificateFile /opt/csw/apache2/certs/icompany/publicCert.pem
SSLCertificateChainFile /opt/csw/apache2/certs/icompany/chain.pem
SSLCertificateKeyFile /opt/csw/apache2/certs/icompany/PrivateKeyCert.pem
SSLCertificateFile
должен содержать только общедоступную часть вашего сертификата, которую вы хотите доставить с веб-сайта клиенту.
Если указан SSLCertificateChainFile
, веб-сервер будет прикреплять соответствующие сертификаты (для создания цепочки к корневому ЦС) к сертификату веб-сервера. Вы также можете поместить частную часть своего сертификата в файл, как указано в SSLCertificateFile
, но это NOT рекомендуется по соображениям безопасности (например, у веб-сервера есть ошибка, происходит буффер потока и распечатывается закрытый ключ для злоумышленника) ,
Вместо поставить только закрытый ключ в отдельном файле и объявить его в SSLCertificateKeyFile
- 1. Зачем нужен webpack для NODE_ENV?
- 2. Зачем нужен контекст для getRelativeTimeSpanString?
- 3. Зачем нам нужен IIS Express?
- 4. Зачем нужен сеансовый компонент?
- 5. Зачем нужен тег fieldset?
- 6. Зачем нужен DevKit
- 7. Зачем нужен std :: minmax_element?
- 8. Зачем нужен OleDbDataAdapter?
- 9. Grails - Зачем нужен Transaction?
- 10. Зачем нам нужен org.junit.ComparisonFailure?
- 11. Зачем нужен следующий код?
- 12. Зачем нужен JBoss DefaultDS
- 13. Зачем нужен первичный ключ?
- 14. Зачем нужен typedef GLXContext?
- 15. Зачем нужен объект дважды?
- 16. Зачем нам нужен cmake?
- 17. Зачем нужен курсор?
- 18. Зачем нужен следующий код?
- 19. Зачем нужен gwt-bootstrap?
- 20. Зачем нужен сервер Ember.js?
- 21. Зачем мне нужен: «org.apache.derby.jdbc.ClientDriver»
- 22. Зачем нужен этот прилив?
- 23. Зачем нам нужен contexClassLoader
- 24. Зачем нужен $ scope.closeModal?
- 25. Зачем нужен вектор?
- 26. Зачем нужен следующий код?
- 27. Зачем нужен StaticResource?
- 28. Зачем нужен JavaScript bind()?
- 29. Зачем нужен пароль?
- 30. Зачем нужен этот метод?
Как насчет краткого изложения, например: «В криптографии с открытым ключом используется закрытый ключ ...»? – Gumbo
Ему нужно только прочитать 3 предложения в первой ссылке, чтобы получить это резюме. Если вы можете быстро ответить на свой вопрос, прочитав статью в вики, это очень плохой вопрос, чтобы спросить других людей здесь. –
Возможно, он задает техническую (и, возможно, не концептуальную) причину, характерную для apache. Я попытался ответить на этот вопрос апаче. – saxos