我正在尝试使用 SSL 加密我的网站。我创建了一个自签名证书(在此期间),并尝试将其集成到我的 nginx 服务器中。
我将证书放入主 nginx.conf 文件中,因为我有多个域(dev 和 beta)。
# SSL
ssl_certificate /srv/ssl/nginx.pem;
ssl_certificate_key /srv/ssl/nginx.key;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
在该server
块中,我有以下内容:
+server {
+ listen 80;
+ server_name dev.DOMAIN.com;
+
+ location / {
+ rewrite ^ https://$server_name$request_uri permanent;
+ }
+}
server {
+ listen 443 ssl;
server_name dev.DOMAIN.com;
access_log /var/www/dev/logs/access.log;
error_log /var/www/dev/logs/error.log;
root /var/www/dev/public_html;
+ keepalive_timeout 70;
location / {
index index.html index.htm index.php;
}
// [.. A couple other rewrite statements here ..]
}
我对测试版中的块做了相同的更改server
,但虽然它可以在开发版中运行,但我Connection Refused
在测试版中收到错误。
我已经验证了 dev 和 beta 文件是相同的(子域名除外)。
两个版本的代码也完全相同。错误日志和访问日志均未显示任何条目。
说实话我不知道下一步该去哪里...!
答案1
注意:答案专门针对我的问题。如果你遇到类似的问题,请阅读原始问题的评论,因为它们可能更相关
事实证明,除非专门配置为 SSL 网站,否则 CloudFlare 会干扰这些网站。就我的情况而言,dev
子域名设置为完全绕过 CloudFlare 网络,但beta
被“加速”,这导致 IP 转移到 CloudFlare 的 IP。
如果您创建名为“ssl”的子域名,Cloudflare 会为免费帐户提供 SSL 支持。进一步的支持需要专业版(约 20 美元/月)。