我希望我的apache2
实例在默认端口 443 上提供 HTTPS(简单页面或任何内容)服务,例如用于letsencrypt
证书安装客户端,并在其他端口(例如端口 446)上提供多项服务(wiki、问题跟踪器等)dokuwiki
。
在端口 443 上启用 HTTPS(见下文)之前,为多个服务提供这些非默认端口的服务效果很好,站点配置如下
Listen 0.0.0.0:446 https
Alias /dokuwiki/ "/var/www/html/dokuwiki/"
DirectoryIndex index.php index.html index.htm
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
AddType application/x-httpd-php .php .htm .html
<Directory "/var/www/html/dokuwiki">
Options None
AllowOverride Limit
Require all granted
</Directory>
<VirtualHost [hostname]:446 >
ErrorLog /var/log/dokuwiki/dokuwiki.log
SSLEngine On
DocumentRoot "/var/www/html/dokuwiki"
ServerName [hostname]
SSLCertificateFile /etc/letsencrypt/live/[hostname]/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/[hostname]/privkey.pem
</VirtualHost>
Listen 443
在 中启用/etc/apache2/ports.conf
、打开SSLEngine
on
并/etc/apache2/sites-enabled/default-ssl.conf
指定 SSL 证书和密钥SSLCertificateFile
后SSLCertificateKeyFile
,dokuwiki
将在端口 443 上使用 HTTPS 提供服务,而 446 不再提供 HTTPS 服务,而是apache2
根据 使用端口netstat -tupln
。
/etc/apache2/sites-available/default-ssl.conf
是
<IfModule mod_ssl.c>
<VirtualHost _default_:443>
ServerAdmin admin@[hostname]
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/[hostname]/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/[hostname]/privkey.pem
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory /usr/lib/cgi-bin>
SSLOptions +StdEnvVars
</Directory>
</VirtualHost>
</IfModule>
我猜是dokuwiki
因为端口 443 上提供服务,因为它与目录结构相匹配。我必须弄清楚如何关闭它,但这是另一个问题。我不明白为什么 446 不再提供服务(firefox
显示 47.0SSL_ERROR_RX_RECORD_TOO_LONG
并表示该网站根本不提供 HTTPS,并且dokuwiki
网站日志包含的[Thu Jul 21 14:42:48.803900 2016] [ssl:info] [pid 13028] AH01914: Configuring server richtercloud.de:443 for SSL protocol
内容没有任何意义)。这是一个错误吗?
我发现https://serverfault.com/questions/528210/bind-apache-ssl-port-with-different-port-with-same-openssl-port-443,但那里的解决方案是我的问题。
我正在使用 Ubuntu 16.04。
答案1
使用上述设置后,现在一切都运行正常。此行为可能是由于firefox
缓存加载无用所致。