我使用以下服务器脚本运行http,https服务器并将所有http请求重定向到https。
当我从本地和远程从IP地址访问服务器时,请求会重定向到https,而api会使用不安全警告。
但是当我通过域访问相同的路由时,我收到"Site cannot be Reached"
错误。
虽然访问http://example.com/test-route
重定向到https://example.com/test-route
,但我仍然遇到Site can't be reached
错误。
import http from 'http';
import https from 'https';
import redirectHttps from 'redirect-https';
import greenlock from 'greenlock';
import app from '../app';
var le = greenlock.create({
server: 'staging', // using https://acme-v01.api.letsencrypt.org/directory in prod
configDir: 'certs',
approveDomains: (opts, certs, cb) => {
if (certs) {
opts.domains = ['example.com']
} else {
opts.email = 'me@mymail.com',
opts.agreeTos = true;
}
cb(null, {
options: opts,
certs: certs
});
},
});
http.createServer(le.middleware(redirectHttps())).listen(80, function() {
console.log("Server Running On http @ port " + 80);
});
https.createServer(le.httpsOptions, le.middleware(app)).listen(443, function() {
console.log("Server Running On https @ port " + 443);
});
答案 0 :(得分:1)
出现这种情况有很多原因,自从您发布此问题以来,图书馆已经更新了很多。
我最近花了很多时间更新文档和示例:
我建议您查看视频教程:
并检查故障排除部分中的每个项目。供参考:
仔细检查以下内容:
http-01
挑战
ifconfig
是否显示公开地址(好)?或私人的 - 10.x,192.168.x等(坏)?dns-01
质询?version: 'draft-11'
version: 'v01'
email
设置为有效地址 dig MX example.com
{/ 1}} 'john@example.com'
设置为真实域approveDomains
dig +trace A example.com; dig +trace www.example.com
进行测试)[ 'example.com', 'www.example.com' ]
设置为可写位置(使用configDir
进行测试)touch ~/acme/etc/tmp.tmp
或setcap
sudo
值 如果您仍然遇到问题,请在存储库中发布问题,我会尽最大努力帮助您解决问题。确保升级到最新版本,因为它具有更好的调试日志记录。