RHEL 6에 아파치를 설치했습니다. 모든 것이 잘 작동합니다. 사용하려면 어떤 변경과 구성이 필요한가요? https://localhost:443/.
"Listen 80"을 443으로 변경하면 SSL 연결 오류가 발생합니다.
"오류 107(net::ERR_SSL_PROTOCOL_ERROR): SSL 프로토콜 오류."
답변1
을 사용하는 경우 apache2
다음을 수행해야 합니다.
1 단계:OpenSSL을 사용하여 사이트 보호를 위한 키를 생성하세요. 이러한 키는 보안 사이트에 대한 트래픽을 암호화하고 해독할 때 사용됩니다.
$ openssl genrsa -out mydomain.key 1024
이 명령은 1024비트 개인 키를 생성하여 mydomain.key 파일에 저장합니다.
2 단계:자신의 인증서를 생성하십시오.
$ openssl req -new -key mydomain.key -x509 -out mydomain.crt
3단계:해당 디렉터리에 개인 키를 저장 /etc/apache2/ssl.key/
하고 해당 디렉터리에 인증서를 저장 합니다 /etc/apache2/ssl.crt/
.
노트:이 ssl.key
디렉토리는 루트만 읽을 수 있어야 합니다.
4단계:httpd.conf
이제 편집 해야 합니다 /etc/apache2
.
이제 파일에는 다음과 같은 내용이 포함되어야 합니다.
NameVirtualHost *:80
NameVirtualHost *:443
Listen 443
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot /srv/www/htdocs/mydomain
ServerName www.mydomain.com
ServerAlias mydomain.com
</VirtualHost>
<VirtualHost *:443>
ServerAdmin [email protected]
DocumentRoot /srv/www/htdocs/mydomain-secure
ServerName mail.mydomain.com
SSLEngine on
SSLCertificateFile /etc/apache2/ssl.crt/mydomain.crt
SSLCertificateKeyFile /etc/apache2/ssl.key/mydomain.key
</VirtualHost>
<Directory /srv/www/htdocs/mydomain-secure>
SSLRequireSSL
</Directory>
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot /srv/www/htdocs/mydomain
ServerName mail.mydomain.com
RedirectMatch permanent (/.*) https://mail.mydomain.com$1
</VirtualHost>
답변2
Listen 80
에서는 변경하지 마십시오 . SSL은 443
에서 /etc/httpd/conf/httpd.conf
구성됩니다 /etc/httpd/conf.d/ssl.conf
. RHEL 6에서는 SSL이 활성화되어 있으며 기본적으로 자체 서명된 인증서를 사용하여 수신합니다.
SSL을 사용하여 간단히 기본 사이트를 탐색할 수 있습니다 https://localhost
(URL 끝에 포트를 추가할 필요 없음).
모든 HTTP 요청을 HTTPS로 전달하려면(귀하가 달성하려고 하는 것으로 생각됩니다) 영구 리디렉션을 추가하거나 Apache 모듈을 사용할 수 있습니다 mod_rewrite
.
가장 쉽고 안전한 방법은 영구 리디렉션을 설정하는 것입니다. 명명된 가상 호스트를 활성화하고 Redirect
VirtualHost에 지시문을 추가합니다 /etc/httpd/conf/httpd.conf
.
NameVirtualHost *:80
<VirtualHost *:80>
ServerName localhost
Redirect permanent / https://localhost
</VirtualHost>
를 사용하면 mod_rewrite
명명된 가상 호스트를 생성할 수도 있습니다. 이는 권장되는 접근 방식은 아니지만 작동합니다.
NameVirtualHost *:80
<VirtualHost *:80>
# Enable the Rewrite engine
RewriteEngine On
# Make sure the connection is not already HTTPS
RewriteCond %{HTTPS} !=on
# This rewrites the URL and forwards to https
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]
</VirtualHost>
SSL을 끄려면 이 줄을 주석 처리 /etc/httpd/conf.d/ssl.conf
하고 Apache를 다시 시작하세요.
LoadModule ssl_module modules/mod_ssl.so
Listen 443