Когда директивы SSL вступают в силу

Когда директивы SSL вступают в силу

Я пытаюсь изучить основы настройки сервера Apache и задаюсь вопросом о валидности директив SSL в различных областях действия Apache.

Эти директивы;

SSLEngine on
SSLCertificateFile "/etc/apache2/ssl/apache.crt"
SSLCertificateKeyFile "/etc/apache2/ssl/apache.key"
SSLRequireSSL ...

Где их можно разместить? Только в разделе VirtualHost? Если я размещу их в глобальной области видимости, они будут работать?

Извините, если этот вопрос как-то не соответствует контексту, у меня все еще есть некоторые комплексные проблемы с Apache :)

решение1

Добро пожаловать в мир Apache! Первый урок — научиться читать прекрасную документацию. В документации Apache каждая директива имеетконтекстраздел, который указывает, где в файлах конфигурации сервера директива является допустимой. Его можно найти прямо под строками Syntax:и Default:.

конфигурация сервераЭто означает, что директива может использоваться в файлах конфигурации сервера (например, httpd.conf), но не внутри каких-либо <VirtualHost>или <Directory>контейнеров. Она .htaccessвообще не допускается в файлах.

виртуальный хостЭтот контекст означает, что директива может появляться внутри <VirtualHost>контейнеров в файлах конфигурации сервера.

каталогДиректива, помеченная как допустимая в данном контексте, может использоваться внутри контейнеров <Directory>, <Location>, <Files>, <If>и <Proxy> в файлах конфигурации сервера с учетом ограничений, изложенных в разделах конфигурации.

.htaccessЕсли директива допустима в этом контексте, это означает, что она может появляться внутри файлов .htaccess для каждого каталога. Она может не обрабатываться, хотя это зависит от активных в данный момент переопределений.

СSSLEngine,SSLCertificateFile,SSLCertificateKeyFileконтексты — конфигурация сервера и виртуальный хост. Это означает, что вы можете указать их для всего сервера, а также переопределить эту конфигурацию по умолчанию для каждого <VirtualHost>.

TheSSLRequireSSLДирективас другой стороны, это допустимо в контекстах каталога и .htaccess. Это означает, что вы можете, поместив это в каталог, указать, что не-TLS-соединения не должны быть разрешены, даже если существуют виртуальные хосты HTTP, которые в противном случае обслуживали бы этот каталог.

Однако в наши дни вы должны защищать все с помощью TLS, делая SSLRequireSSLненужным. Перенаправьте все HTTP на HTTPS и примените его с помощьюСтрогая безопасность транспорта HTTP(HSTS) политика (RFC6797).

Связанный контент