나 때문인지 문서 때문인지는 모르겠지만, Apache
이것이 출구를 오도하는 경우가 많다고 생각합니다.
예:
http://httpd.apache.org/docs/2.4/ssl/ssl_howto.html
SSL 구성에는 최소한 다음 지시문이 포함되어야 합니다.
LoadModule ssl_module modules/mod_ssl.so
Listen 443
<VirtualHost *:443>
ServerName www.example.com
SSLEngine on
SSLCertificateFile "/path/to/www.example.com.cert"
SSLCertificateKeyFile "/path/to/www.example.com.key"
</VirtualHost>
SSLEngine
따라서 위의 내용을 바탕으로 지침은 다음과 같다고 가정합니다.~ 해야 하다.
지금 https://httpd.apache.org/docs/2.4/mod/mod_ssl.html
SSLEngine Directive
Description: SSL Engine Operation Switch
Syntax: SSLEngine on|off|optional
Default: SSLEngine off
Context: server config, virtual host
Status: Extension
Module: mod_ssl
This directive toggles the usage of the SSL/TLS Protocol Engine. This is should be used inside a <VirtualHost> section to enable SSL/TLS for a that virtual host. By default the SSL/TLS Protocol Engine is disabled for both the main server and all configured virtual hosts.
Example
<VirtualHost _default_:443>
SSLEngine on
#...
</VirtualHost>
In Apache 2.1 and later, SSLEngine can be set to optional. This enables support for RFC 2817, Upgrading to TLS Within HTTP/1.1. At this time no web browsers support RFC 2817.
특히 다음과 같은 부분이 있습니다. 기본적으로 마스터 서버와 구성된 모든 가상 호스트에는 SSL/TLS 프로토콜 엔진이 비활성화되어 있습니다.
우선 SSL/TLS 프로토콜 엔진이 실제로 무엇을 의미하는지 이해하지 못합니다. 내가 이해한 바에 따르면, SSL/TLS 지원을 활성화하려면 mod_ssl
모듈이 기본적으로 설치되지 않으므로 설치해야 합니다 . 이것이 지금 말하는 엔진인가요?
둘째, 일단 mod_ssl
설치하면 httpd
듣기를 시작할 수 있을 뿐만 아니라 80
계속 443
해서 들을 수 있습니다.
셋째, 구성 파일을 보면 ssl.conf
다음과 같은 라인이 있습니다 SSLEngine on
. Apache 문서에 따르면 마스터 서버 구성과 그 이전의 모든 것(예: vhost 지시어)은 하나로 구문 분석됩니다. 그런데 왜 SSLEngine
모든 가상 호스트에서 해당 지시어를 사용해야 합니까 ?
넷째, 예를 들어 두 개의 가상 호스트를 생성하고 ServerName
각 호스트가 브라우저에서 보낸 값을 기반으로 올바른 인증서로 응답하도록 각 호스트에 대해 SSLCertificate 지시문과 SSLCertificate 지시문을 정의하고 SNI
그렇게 했습니다.아니요두 가상 호스트 모두에 SSLEngine 지시문을 포함하면 웹 콘텐츠가 https
Apache를 통해 올바른 SSL 인증서를 반환합니다.
문서에는 필수라고 되어 있는데 왜 없어도 작동하나요?
귀하의 의견을 기대합니다!
추신. 나는 인간일 뿐이라는 것을 기억해주세요. 나는 문서와 사본을 읽는 데 꽤 많은 시간을 보냈습니다. 뭔가 놓친 것이 있다면 사과드립니다. 그것은 게으름 때문이 아니며 때로는 바로 앞에 있는 간단한 아이디어를 간과할 수도 있습니다.
답변1
나는 도움을 주려고 노력할 것입니다:
1) SSL 프로토콜 엔진은 SSL 프로토콜(HTTPS라고도 함)을 구동하는 엔진입니다. 이 엔진은 mod_ssl에서 제공되지만 추가 리소스를 소비하므로 기본적으로 활성화되지 않습니다. HTTP 프로토콜과 너무 다르기 때문에 고유한 이름인 HTTPS가 필요합니다.
2) 포트 443이 열리고 SSLEngine이 활성화되는 것은 운영 체제 관리자가 이 구성을 mod_ssl 패키지에 패키지했기 때문에 발생했습니다. 소스에서 직접 Apache를 빌드하고 설치하면 기본 동작은 문서에 나와 있는 것과 같습니다.
3) ssl.conf 파일은 배포 관리자가 제공하며 Apache와 Apache 문서는 이에 대해 아무것도 모르므로 기본값만 문서화합니다. 이것이 귀하의 시스템에 어떤 것인지는 잘 모르겠지만, Apache 문서에 SSLEngine이 가상 호스트 구성에 사용되어야 한다고 명시되어 있으므로 이를 각 가상 호스트에 포함시킬 가능성이 높습니다. 필요하지 않은 리소스를 소비하지 않으려면 각 가상 호스트에서 활성화해야 합니다.
4) 이것이 당신에게 보인다면 아마도 이것은 운영 체제에서 제공하는 또 다른 편의 때문일 것입니다. Apache는 각 운영 체제가 패키지에서 Apache를 구성하는 방법을 모르므로 가장 기본적인 기본 동작만 설명합니다. 배포판과 함께 제공되는 모든 Apache 구성 파일을 탐색하고 해당 파일이 Apache의 동작에 어떤 영향을 미치는지 확인하면 많은 것을 배울 수 있습니다.