다음을 사용하여 웹사이트를 열려고 합니다.https://mydomain.com, 하지만 계속 표시됩니다: SSL 지원 서버 포트로 일반 HTTP 메시지를 보내고 있습니다. 하지만 http 웹사이트를 사용하면...
저는 nginx가 아닌 Apache 2.2.22를 사용하고 있습니다. 이것은 내 apache.conf입니다.
NameVirtualHost *:80
Listen 80
<IfModule mod_ssl.c>
# If you add NameVirtualHost *:443 here, you will also have to change
# the VirtualHost statement in /etc/apache2/sites-available/default-ssl
# to <VirtualHost *:443>
# Server Name Indication for SSL named virtual hosts is currently not
# supported by MSIE on Windows XP.
NameVirtualHost *:443
Listen 443
</IfModule>
<IfModule mod_gnutls.c>
# Listen 443
</IfModule>
가상 호스트:
<VirtualHost *:80>
ServerName mydomain.com:80
SSLEngine off
DocumentRoot /var/www/www-root/data/www/mydomain.com
ServerAdmin [email protected]
AddDefaultCharset UTF-8
AssignUserID www-root www-root
CustomLog /var/www/httpd-logs/mydomain.com.access.log combined
ErrorLog /var/www/httpd-logs/mydomain.com.error.log
<FilesMatch "\.ph(p[3-5]?|tml)$">
SetHandler application/x-httpd-php
</FilesMatch>
ServerName mydomain.com
ScriptAlias /cgi-bin/ /var/www/www-root/data/www/mydomain.com/cgi-bin/
ScriptAlias /php-bin/ /var/www/php-bin/www-root/
ServerAlias www.mydomain.com
<FilesMatch "\.phps$">
SetHandler application/x-httpd-php-source
</FilesMatch>
<IfModule php5_module>
php_admin_value sendmail_path "/usr/sbin/sendmail -t -i -f [email protected]"
php_admin_value upload_tmp_dir "/var/www/www-root/data/mod-tmp"
php_admin_value session.save_path "/var/www/www-root/data/mod-tmp"
php_admin_value open_basedir "none"
</IfModule>
<IfModule php7_module>
php_admin_value sendmail_path "/usr/sbin/sendmail -t -i -f [email protected]"
php_admin_value upload_tmp_dir "/var/www/www-root/data/mod-tmp"
php_admin_value session.save_path "/var/www/www-root/data/mod-tmp"
php_admin_value open_basedir "none"
</IfModule>
</VirtualHost>
<Directory /var/www/www-root/data/www/mydomain.com>
AllowOverride All
Options +Includes +ExecCGI
<IfModule php5_module>
php_admin_flag engine on
</IfModule>
<IfModule php7_module>
php_admin_flag engine on
</IfModule>
</Directory>
<VirtualHost *:443>
ServerName mydomain.com:443
DocumentRoot /var/www/www-root/data/www/mydomain.com
ServerAdmin [email protected]
AddDefaultCharset UTF-8
SSLEngine on
SSLCertificateFile "/var/www/httpd-cert/www-root/mydomain.com.crt"
SSLCertificateKeyFile "/var/www/httpd-cert/www-root/mydomain.com.key"
SSLCertificateChainFile "/var/www/httpd-cert/www-root/mydomain.com.ca"
SSLHonorCipherOrder on
SSLProtocol +TLSv1 +TLSv1.1 +TLSv1.2
SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH
AssignUserID www-root www-root
CustomLog /var/www/httpd-logs/mydomain.com443.access.log combined
ErrorLog /var/www/httpd-logs/mydomain.com443.error.log
<FilesMatch "\.ph(p[3-5]?|tml)$">
SetHandler application/x-httpd-php
</FilesMatch>
ServerName mydomain.com
ScriptAlias /cgi-bin/ /var/www/www-root/data/www/mydomain.com/cgi-bin/
CustomLog /var/www/httpd-logs/mydomain.com.access.log combined
ErrorLog /var/www/httpd-logs/mydomain.com.error.log
ScriptAlias /php-bin/ /var/www/php-bin/www-root/
ServerAlias www.mydomain.com
<FilesMatch "\.phps$">
SetHandler application/x-httpd-php-source
</FilesMatch>
<IfModule php5_module>
php_admin_value sendmail_path "/usr/sbin/sendmail -t -i -f [email protected]"
php_admin_value upload_tmp_dir "/var/www/www-root/data/mod-tmp"
php_admin_value session.save_path "/var/www/www-root/data/mod-tmp"
php_admin_value open_basedir "none"
</IfModule>
<IfModule php7_module>
php_admin_value sendmail_path "/usr/sbin/sendmail -t -i -f [email protected]"
php_admin_value upload_tmp_dir "/var/www/www-root/data/mod-tmp"
php_admin_value session.save_path "/var/www/www-root/data/mod-tmp"
php_admin_value open_basedir "none"
</IfModule>
</VirtualHost>
글쎄, 어떻게 해야할지 모르겠어요. Alpha SSL 인증서를 구입했고 최소한 ISPManager에서는 작동하지만 https를 사용하여 사이트를 열 수 없습니다. 도와주세요!
SSL.conf:
<IfModule mod_ssl.c>
#
# Pseudo Random Number Generator (PRNG):
# Configure one or more sources to seed the PRNG of the SSL library.
# The seed data should be of good random quality.
# WARNING! On some platforms /dev/random blocks if not enough entropy
# is available. This means you then cannot use the /dev/random device
# because it would lead to very long connection times (as long as
# it requires to make more entropy available). But usually those
# platforms additionally provide a /dev/urandom device which doesn't
# block. So, if available, use this one instead. Read the mod_ssl User
# Manual for more details.
#
SSLRandomSeed startup builtin
SSLRandomSeed startup file:/dev/urandom 512
SSLRandomSeed connect builtin
SSLRandomSeed connect file:/dev/urandom 512
##
## SSL Global Context
##
## All SSL configuration in this context applies both to
## the main server and all SSL-enabled virtual hosts.
##
#
# Some MIME-types for downloading Certificates and CRLs
#
AddType application/x-x509-ca-cert .crt
AddType application/x-pkcs7-crl .crl
# Pass Phrase Dialog:
# Configure the pass phrase gathering process.
# The filtering dialog program (`builtin' is a internal
# terminal dialog) has to provide the pass phrase on stdout.
SSLPassPhraseDialog builtin
# Inter-Process Session Cache:
# Configure the SSL Session Cache: First the mechanism
# to use and second the expiring timeout (in seconds).
# (The mechanism dbm has known memory leaks and should not be used).
#SSLSessionCache dbm:${APACHE_RUN_DIR}/ssl_scache
SSLSessionCache shmcb:${APACHE_RUN_DIR}/ssl_scache(512000)
SSLSessionCacheTimeout 300
# Semaphore:
# Configure the path to the mutual exclusion semaphore the
# SSL engine uses internally for inter-process synchronization.
SSLMutex file:${APACHE_RUN_DIR}/ssl_mutex
# SSL Cipher Suite:
# List the ciphers that the client is permitted to negotiate. See the
# ciphers(1) man page from the openssl package for list of all available
# options.
# Enable only secure ciphers:
SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5
# Speed-optimized SSL Cipher configuration:
# If speed is your main concern (on busy HTTPS servers e.g.),
# you might want to force clients to specific, performance
# optimized ciphers. In this case, prepend those ciphers
# to the SSLCipherSuite list, and enable SSLHonorCipherOrder.
# Caveat: by giving precedence to RC4-SHA and AES128-SHA
# (as in the example below), most connections will no longer
# have perfect forward secrecy - if the server's key is
# compromised, captures of past or future traffic must be
# considered compromised, too.
#SSLCipherSuite RC4-SHA:AES128-SHA:HIGH:MEDIUM:!aNULL:!MD5
#SSLHonorCipherOrder on
# enable only secure protocols: SSLv3 and TLSv1, but not SSLv2
SSLProtocol all -SSLv2
# Allow insecure renegotiation with clients which do not yet support the
# secure renegotiation protocol. Default: Off
SSLInsecureRenegotiation off
# Whether to forbid non-SNI clients to access name based virtual hosts.
# Default: Off
SSLStrictSNIVHostCheck off
</IfModule>
답변1
서버 변경 후 기존 웹사이트/애플리케이션을 http에서 https로 변환할 때 알아야 할 "문제"가 많이 있습니다. 결코 완전하지는 않지만 여기에 제가 처리해야 했던 몇 가지 사항이 있습니다. 단지 시작점일 뿐입니다. WTF 순간을 최소화하기 위한 항목을 확인하세요.
물론 이전에 설치한 모든 (웹) 애플리케이션 프레임워크에서 SSL 연결을 허용하는 것도 그 중 하나입니다. (워드프레스, 드루팔, 줌라,...)
.htaccess 파일을 적절하게 변경합니다(모든 https를 http로 변경하면 안 됨).
귀하의 도메인으로 리디렉션되는 도메인이 있는 경우 이를 조정해야 할 수도 있습니다.
http://
또한 최종 사용자가 https를 통해 사이트를 볼 때 경고 메시지/아이콘을 받지 않도록 하려면: 페이지에 로드된 외부 리소스(javascript, css, 이미지)에 대한 참조를 철저히 확인하여 사용 되지 않는지 확인하는 것이 좋습니다. 아니요 https://
.
웹 페이지뿐만 아니라 오류 페이지도 확인하는 것이 좋습니다.
물론 "플러그인"이 있거나 타사 추가 기능 앱을 사용하는 경우 해당 플러그인이 어디에 사용되는지 다시 확인하고 싶을 것입니다.
웹사이트를 "Let's Encrypt" SSL 인증서가 있는 서버로 옮겼을 때 위의 모든 문제를 해결해야 했습니다. 나는 이전 서버에서 "원래 사이트"를 사용할 수 있도록 유지했으며 어떤 경우에는 수정해야 할 사항을 정리하는 동안 사이트가 해당 서버를 가리키도록 했습니다.
답변2
문제가 해결되었습니다. 이게 다 내 프레임워크 때문이다. SSL 연결을 허용해야 합니다. 도와주셔서 감사합니다)