好的,所以我以前从没有使用SSL / HTTPS的经验,我只处理过标准的HTTP。最近,我开始在需要SSL的网站上工作。所以,当然,我出去研究了如何开始。我已经到了成功安装SSL证书的阶段-出现绿色的挂锁,并且服务器在端口443上响应HTTPS请求。我的问题是,无论如何我都无法使用HTTPS /来显示任何页面SSL,但是它们在端口80 / HTTP上看起来很好(直到我将HTTP重定向到HTTPS为止)。
简单地说,我可以很好地访问HTTPS站点,但是不会发送我的页面,而是为每个请求发送404。
/etc/apache2/sites-available/[name].conf
<VirtualHost *:80>
ServerName [serverName]
RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=302]
</VirtualHost>
<VirtualHost *:443>
ServerName [serverName]
ServerAdmin [email]
DocumentRoot [docRoot]
# I know the following SSL cert stuff is correct
SSLEngine On
SSLCertificateFile [...]/[domain].crt
SSLCertificateKeyFile [...]/[certificate].key
SSLCertificateChainFile [...]/[theotherone].crt
ErrorLog ${APACHE_LOG_DIR}/[custom]_error.log
CustomLog ${APACHE_LOG_DIR}/[custom]_access.log combined
<Directory "[docRoot]">
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
</VirtualHost>
我不确定是否还有其他您想查看的内容或其他任何细节,但是如果有,请告诉我。
编辑:
在配置文件中进行了一些搜索之后,我发现由于某种原因,连接到HTTPS时,服务器使用默认配置(/ var / www /)中的文档根目录,但是a2ensite未启用此默认配置。我似乎无法弄清楚导致此问题的配置位于何处
至于Rewrite,我只是用它们来获得临时的rectct(当时我还不确定100%),现在我知道Redirect完全有能力做到这一点(是的,很糟糕,我不知道)。关于单独的日志文件,我已经做到了。我还弄清楚了问题所在,并将对此进行更新以反映这一点。
—
迈克尔·朗格斯特
Rewrite
指令看起来像您正在尝试在配置错误的反向代理后面运行Apache。如果您的Apache在没有任何代理的情况下直接提供域服务,则应删除所有Rewrite
指令并将其替换为单个Redirect
。并为每个日志文件配置单独的日志文件,VirtualHost
以便您可以准确查看VirtualHost
每个请求的处理过程。