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.gz
về cơ bản nói rằng cài đặt ssl-cert
gó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-enabled
thư 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-ssl
tệ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 Listen
cả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-ssl
và các tên khác thành 001, 002, v.v.
a2dissite default
lệnh vô hiệu hóa các trang web http / config. Ngoài ra, tôi http.conf
hoàn toàn trống rỗng.
sites-enabled
, đổi tên default-ssl
thành 000-default-ssl
on sites-available
và sudo a2ensite 000-default-ssl
. Khởi động lại apache và kiểm tra lại