Tôi đang cố gắng thay đổi trang web apache2 hiện tại của mình từ http thành https bằng chứng chỉ tự ký trên Ubuntu 11. Trang web hiện đang chạy với cấu hình tại sites-available/default. Tôi đã làm theo tài liệu /usr/share/doc/apache2.2-common/README.Debian.gzvề cơ bản nói rằng cài đặt ssl-certgói (nó đã được cài đặt, vì vậy tôi đã chạy sudo make-ssl-cert generate-default-snakeoil --force-overwriteđể chắc chắn) và sau đó làm:
sudo a2dissite default
sudo a2enmod ssl
sudo a2ensite default-ssl
Tôi cập nhật sites-available/default-sslđể DocumentRootđiểm đến /var/siteX.mydomain.com.
Sau đó tôi chạy:
sudo service apache2 restart
Nhưng các yêu cầu của tôi đối với phiên bản http vẫn đang thành công và đang được phục vụ. Yêu cầu phiên bản https chỉ bị treo vô thời hạn. Tôi đã bỏ lỡ cái gì?
Chỉnh sửa:
FWIW, Có 6 trang web khác đang được apache2 phục vụ trên hộp này, ngoài trang web mà tôi gặp sự cố. Vì vậy, sites-enabledthư mục của tôi trông như:
default-ssl (symlink to sites-available/default-ssl - maps to siteX.mydomain.com)
siteA.mydomain.com
siteB.mydomain.com
siteC.mydomain.com
siteD.mydomain.com
siteE.mydomain.com
siteF.mydomain.com
Trong trang web khác [AF] .mydomain.com, không có tài liệu tham khảo đến trang webX.mydomain.com ở bất cứ đâu, vì vậy không ai trong số chúng được vô tình định cấu hình để tiếp tục phục vụ lưu lượng truy cập đến http://siteX.mydomain.com
Edit2:
Đây là đoạn trích từ đầu 000-default-ssltệp cấu hình của tôi (mọi thứ sau đây chỉ là nội dung mặc định mà tôi không chạm vào):
<IfModule mod_ssl.c>
<VirtualHost _default_:443>
ServerAdmin webmaster@localhost
ServerName siteX.mydomain.com:443
DocumentRoot /var/siteX.mydomain.com
DirectoryIndex index.php
Edit3:
Cập nhật với đầu ra củagrep -v \# 000-default-ssl | grep -Ev '^[ \t]*$'
<IfModule mod_ssl.c>
<VirtualHost _default_:443>
ServerAdmin webmaster@localhost
ServerName siteX.mydomain.com:443
DocumentRoot /var/siteX.mydomain.com
DirectoryIndex index.php
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/siteX.mydomain.com/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
Options +ExecCGI
AddHandler cgi-script .pl
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/ssl_access.log combined
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
SSLEngine on
SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory /usr/lib/cgi-bin>
SSLOptions +StdEnvVars
</Directory>
BrowserMatch "MSIE [2-6]" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown
</VirtualHost>
</IfModule>
Edit4:
Đây là nội dung củaports.conf
NameVirtualHost *:80
Listen 80
<IfModule mod_ssl.c>
NameVirtualHost *:443 # I just added this now - still not working !!
Listen 443
</IfModule>
<IfModule mod_gnutls.c>
Listen 443
</IfModule>
httpd.conf. Nên có một Listencảng 80. Nhận xét nó ra (thêm #vào lúc bắt đầu). Ngoài ra, hãy kiểm tra ssl mặc định của bạn để tải trước các trang web khác. Đổi tên nó thành 000-default-sslvà các tên khác thành 001, 002, v.v.
a2dissite defaultlệnh vô hiệu hóa các trang web http / config. Ngoài ra, tôi http.confhoàn toàn trống rỗng.
sites-enabled, đổi tên default-sslthành 000-default-sslon sites-availablevà sudo a2ensite 000-default-ssl. Khởi động lại apache và kiểm tra lại