Gitlab 页面和 Jekyll - 设置 TLS Let's Encrypt 的问题
Gitlab pages and Jekyll - issue with set up TLS Lets Encrypted
我尝试在我的静态网站上添加 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
扩展名 - 两个命令都有效,并且 return 适当的值
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 没有太多经验
我所做的是在 gitlab 上完成构建后复制了挑战文件,因为我不知道如何让 jekyll 省略文件扩展名。
我的 .gitlab-ci.yml 文件
image: ruby:2.3
pages:
script:
- gem install jekyll
- jekyll build -d public
# Use this when creating a new letsencrypt cert, this since jekyll adds .html to the file and letsencrypd does not expect a .html extension
- cp ./public/.well-known/acme-challenge/HASHFILE-FROM-LETSENCRYPT.html ./public/.well-known/acme-challenge/HASHFILE-FROM-LETSENCRYPT
artifacts:
paths:
- public
only:
- master
另一个解决方案(如suggested by Marthym)是简单地在永久链接行的末尾添加一个斜杠:
permalink: /.well-known/acme-challenge/5TBu788fW0tQ5EOwZMdu1Gv3e9C33gxjV58hVtWTbDM/
这样,访问YOURDOMAIN.org/.well-known/acme-challenge/...会重定向到YOURDOMAIN.org/.well-known/acme-challenge/.../(注意额外的斜杠),这将具有正确的数据。它对我来说完美无缺,当我切换到另一个域时,我不需要更新 .gitlab-ci.yml。
添加额外的斜线对我不起作用。我不得不添加'/index.html'。
permalink: /.well-known/acme-challenge/${CHALLENGE}/index.html
我尝试在我的静态网站上添加 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
扩展名 - 两个命令都有效,并且 return 适当的值
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 没有太多经验
我所做的是在 gitlab 上完成构建后复制了挑战文件,因为我不知道如何让 jekyll 省略文件扩展名。
我的 .gitlab-ci.yml 文件
image: ruby:2.3
pages:
script:
- gem install jekyll
- jekyll build -d public
# Use this when creating a new letsencrypt cert, this since jekyll adds .html to the file and letsencrypd does not expect a .html extension
- cp ./public/.well-known/acme-challenge/HASHFILE-FROM-LETSENCRYPT.html ./public/.well-known/acme-challenge/HASHFILE-FROM-LETSENCRYPT
artifacts:
paths:
- public
only:
- master
另一个解决方案(如suggested by Marthym)是简单地在永久链接行的末尾添加一个斜杠:
permalink: /.well-known/acme-challenge/5TBu788fW0tQ5EOwZMdu1Gv3e9C33gxjV58hVtWTbDM/
这样,访问YOURDOMAIN.org/.well-known/acme-challenge/...会重定向到YOURDOMAIN.org/.well-known/acme-challenge/.../(注意额外的斜杠),这将具有正确的数据。它对我来说完美无缺,当我切换到另一个域时,我不需要更新 .gitlab-ci.yml。
添加额外的斜线对我不起作用。我不得不添加'/index.html'。
permalink: /.well-known/acme-challenge/${CHALLENGE}/index.html