djm*_*.im 10 ssl jekyll gitlab gitlab-ci lets-encrypt
我尝试在静态网站上添加SSL/TLS.我使用Gitlab静态页面,而Jekyll用于内容.
我按照这个说明设置TLS - Gitlab教程.
我在这部分堆栈 - 我从Gitlab页面得到404错误
构建完成后,如果一切正常,请再次测试:
Run Code Online (Sandbox Code Playgroud)# 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在根目录中创建了自定义页面whit适当的内容.
我运行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
Run Code Online (Sandbox Code Playgroud)
当我在构建和部署之后提交更改并推送到Gitlab时,我只能使用第二个命令获取适当的内容
curl http://example.com/.well-known/acme-challenge/5TBu788fW0tQ5EOwZMdu1Gv3e9C33gxjV58hVtWTbDM.html
Run Code Online (Sandbox Code Playgroud)
当我跑
curl http://example.com/.well-known/acme-challenge/5TBu788fW0tQ5EOwZMdu1Gv3e9C33gxjV58hVtWTbDM
Run Code Online (Sandbox Code Playgroud)
我收到404错误.
如果我按./letsencrypte脚本继续我也有404错误.此工具尝试不带.html扩展名的URL .
我阅读了教程中的注释并尝试了这种解决方法,但它对我不起作用.
我不知道下一步该尝试什么 - 我对Jekyll/SSL没有多少经验
另一个解决方案(由Marthym建议)只是在永久链接行的末尾添加斜杠:
permalink: /.well-known/acme-challenge/5TBu788fW0tQ5EOwZMdu1Gv3e9C33gxjV58hVtWTbDM/
Run Code Online (Sandbox Code Playgroud)
通过这种方式,访问YOURDOMAIN.org/.well-known/acme-challenge/...会将您重定向到YOURDOMAIN.org/.well-known/acme-challenge/... /(请注意额外的斜线)有正确的数据.它对我来说完美无缺,当我切换到另一个域时,我不需要更新.gitlab-ci.yml.
小智 4
我所做的是在 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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
938 次 |
| 最近记录: |