아파치에서 SSL을 구성하는 방법? 설치했습니다. 모든 것이 제대로 작동합니다. 무엇 모든

RHEL 6에 아파치를 설치했습니다. 모든 것이 제대로 작동합니다. 무엇 모든 변경 및 구성에 사용하기 위해 수행해야
HTTPS를 : // localhost를 : 443 / .

“Listen 80″을 443으로 변경하면 SSL 연결 오류가 발생합니다

“오류 107 (net :: ERR_SSL_PROTOCOL_ERROR) : SSL 프로토콜 오류.”



답변

을 사용하는 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 webmaster@mydomain.com
DocumentRoot /srv/www/htdocs/mydomain
ServerName www.mydomain.com
ServerAlias mydomain.com
</VirtualHost>


<VirtualHost *:443>
ServerAdmin webmaster@mydomain.com
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 webmaster@mydomain.com
DocumentRoot /srv/www/htdocs/mydomain
ServerName mail.mydomain.com
RedirectMatch permanent (/.*) https://mail.mydomain.com$1
</VirtualHost>

답변

변경하지 마십시오 Listen 80443에서 /etc/httpd/conf/httpd.conf. SSL은에 구성되어 /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.confApache를 다시 시작하십시오.

LoadModule ssl_module modules/mod_ssl.so
Listen 443