여러 가상 웹 사이트를 실행하는 가상 호스팅 서버에 OpenSuSE를 설치했습니다. 일반 http에서는 모든 것이 잘 작동합니다. http 외에도 이제 https에서 가상 사이트 중 하나를 실행하고 싶습니다. 그래서 SSL 인증서를 구입했습니다. 인증서 파일을 서버에 복사했습니다.
SSLCertificateFile /etc/apache2/crt/site.crt
SSLCertificateKeyFile /etc/apache2/key/my.key
SSLCACertificateFile /etc/apache2/ca.txt
"/etc/sysconfig/apache2" 파일의 Apache 모듈에서 SSL을 활성화했습니다.
APACHE_MODULES="rewrite actions alias auth_basic authn_file authz_host authz_groupfile authz_user autoindex cgi dir env expires include log_config mime negotiation setenvif ssl userdir php5 reqtimeout authn_core authz_core alias_module headers"
/etc/apache2의 내 listening.conf는 다음과 같습니다.
Listen 80
<IfDefine SSL>
<IfDefine !NOSSL>
<IfModule mod_ssl.c>
Listen 443
</IfModule>
</IfDefine>
</IfDefine>
내 웹호스트 구성 파일은 다음과 같습니다.
<IfDefine SSL>
<IfDefine !NOSSL>
<VirtualHost *:443>
DocumentRoot "/srv/www/vhosts/dialogis-mediation.de/"
ServerName dialogis.coach:443
ServerAdmin [email protected]
ErrorLog /var/log/apache2/error_log
TransferLog /var/log/apache2/access_log
SSLEngine on
SSLProtocol all -SSLv2
SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5
SSLCertificateFile /etc/apache2/crt/site.crt
SSLCertificateKeyFile /etc/apache2/key/my.key
SSLCACertificateFile /etc/apache2/ca.txt
SSLCertificateChainFile /etc/apache2/ca.txt
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory "/srv/www/cgi-bin">
SSLOptions +StdEnvVars
</Directory>
BrowserMatch "MSIE [2-5]" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
CustomLog /var/log/apache2/ssl_request_log ssl_combined
</VirtualHost>
</IfDefine>
</IfDefine>
이제 질문은: Apache에는 포트 443도 활성화되어 있지 않습니다.
내가 한 것: "listen.conf"에서 "Listen 80" 바로 다음 줄에 "Listen 443"을 추가합니다. 이 경우 서버는 포트 443에서 수신 대기하지만 Chrome에서 "ERR_SSL_PROTOCOL_ERROR" 오류를 표시합니다.
내가 무엇을 잘못 구성했는지 잘 모르겠습니다.
답변1
또한 /etc/sysconfig/apache2의 APACHE_SERVER_FLAGS에 SSL 플래그를 추가해야 합니다.
# Notably, to enable ssl support, 'SSL' needs to be added here.
# To enable the server-status, 'STATUS' needs to be added here.
#
# It does not matter if you write flag1, -D flag1 or -Dflag1.
# Multiple flags can be given as "-D flag1 -D flag2" or simply "flag1 flag2".
#
# Specifying such flags here is equivalent to giving them on the commandline.
# (e.g. via rcapache2 start -DReverseProxy)
#
# Example:
# "SSL STATUS AWSTATS SVN_VIEWCVS no_subversion_today"
#
APACHE_SERVER_FLAGS="SSL"
답변2
/etc/apache2 my listening.conf에서 시도했습니다. 듣기 80 듣기 443
또한 다른 응용 프로그램이 포트 443을 사용하고 있는지 확인하고 포트를 해제한 후 다시 시도하십시오!