去年搭建的gitlab,使用了阿里云的免费ssl证书来配置https,证书一年有效。前几天过期后无法访问了。
申请了新的证书,将.key和.pem文件,通过scp命令拷贝到/etc/gitlab/ssl目录下,使用openssl命令生成.crt文件,gitlab-ctl reconfigure,没报错,但不成功。
gitlab-ctl status查看,发现nginx没有启动成功。
gitlab-ctl tail查看日志,发现是nginx读取.crt文件的时候发现格式错误。
查了半天,原因是openssl命令生成.crt文件的时候,格式参数设置为der了,实际上应该设置为pem。
vim看了一下已经过期的crt文件,果然显示得整整齐齐,看新的这个crt文件,一堆乱码。
用openssl重新生成crt,vim查看没有乱码了,再次gitlab-ctl reconfigure,搞定。
记下来,估计明年还得用到。
补充一下gitlab更新ssl证书的全过程:
1、阿里云下载.zip包,保存到/etc/gitlab/ssl目录;
2、unzip
3、openssl x509 -outform pem -in git.hello-orange.com.pem -out git.hello-orange.com.crt (gitlab要的是crt格式的证书文件)
4、gitlab-ctl reconfigure