ssl - Gitlab 页面和 Jekyll - 设置 TLS Let's Encrypt 的问题

标签 ssl jekyll gitlab gitlab-ci lets-encrypt

我尝试在我的静态网站上添加 SSL/TLS。我用的是Gitlab静态页面,Jekyll是做内容的。
我按照此说明设置 TLS - Gitlab tutorial .

我在这部分堆栈 - 我从 Gitlab 页面收到 404 错误

Once the build finishes, test again if everything is working well:

# Note that we're using the actual domain, not localhost anymore
$ curl http://YOURDOMAIN.org/.well-known/acme-challenge/5TBu788fW0tQ5EOwZMdu1Gv3e9C33gxjV58hVtWTbDM

接下来就是问题了 我使用命令成功生成了证书 ./letsencrypt-auto certonly -a manual -d example.com
我在包含适当内容的根目录中创建了自定义页面 letsencrypt-setup.html

我运行 jekyll build 命令,它创建了 _site/.well-known/acme-challenge/5TBu788fW0tQ5EOwZMdu1Gv3e9C33gxjV58hVtWTbDM.html 页面。
当我对此页面运行 curl 命令时,它可以使用和不使用 .html 扩展名 - 这两个命令都有效,并返回适当的值

curl http://localhost:4000/.well-known/acme-challenge/5TBu788fW0tQ5EOwZMdu1Gv3e9C33gxjV58hVtWTbDM
curl http://localhost:4000/.well-known/acme-challenge/5TBu788fW0tQ5EOwZMdu1Gv3e9C33gxjV58hVtWTbDM.html

当我在构建和部署后提交更改并推送到 Gitlab 时,我只能使用第二个命令获取适当的内容

curl http://example.com/.well-known/acme-challenge/5TBu788fW0tQ5EOwZMdu1Gv3e9C33gxjV58hVtWTbDM.html

当我跑的时候

curl http://example.com/.well-known/acme-challenge/5TBu788fW0tQ5EOwZMdu1Gv3e9C33gxjV58hVtWTbDM

我遇到了 404 错误。

如果我在 ./letsencrypte 脚本中按继续,我也会遇到 404 错误。此工具尝试针对没有 .html 扩展名的 URL。

我阅读了教程中的评论并尝试了这个 workaround但它对我不起作用。

我不知道接下来要尝试什么——我对 Jekyll/SSL 没有太多经验

最佳答案

另一种解决方案(如 suggested by Marthym )是简单地在永久链接行的末尾添加一个斜杠:

permalink: /.well-known/acme-challenge/5TBu788fW0tQ5EOwZMdu1Gv3e9C33gxjV58hVtWTbDM/

这样,访问 YOURDOMAIN.org/.well-known/acme-challenge/... 会将您重定向到 YOURDOMAIN.org/.well-known/acme-challenge/.../ (注意额外的斜杠),这将有正确的数据。它对我来说完美无缺,当我切换到不同的域时,我不需要更新 .gitlab-ci.yml。

关于ssl - Gitlab 页面和 Jekyll - 设置 TLS Let's Encrypt 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39196685/

相关文章:

php - 修改 PHP 代码以使用 TLS 而不是 SSL

django - 如何一起使用django-urls-sugar和ssl中间件?

html - Jekyll 使用 HTML 发帖

jekyll - 传递包含参数以从 Jekyll 中的集合中选择文件夹

oauth-2.0 - 使用 oauth2_proxy 和 Gitlab 作为其提供者限制对应用程序的访问

docker - Gitlab-ci 和 docker 组成 : tls handshake timeout

permissions - GitLab:部分公共(public)项目

php - 如何修复 htaccess ssl https 重定向?

SSL 客户端身份验证返回 Bad Certificate 错误

jekyll - 为什么删除 yaml front matter 会阻止 Jekyll 将 md 文件转换为 html