我正在尝试在 docker 容器内使用 https 设置自己的 gitlab。
好吧,只要我不尝试使用 https,一切都正常!
现在我的问题开始了。
根据我的日志,gitlab 无法加载 sub.domain.com.crt 文件,因为“格式错误”。
我正在使用 Lets Encrypt,并且有 cert.pem、privkey.pem、fullchain.pem 和 chain.pem。我认为我唯一需要的文件是 fullchain.pem 和 privkey.pem。
好的,现在我将讲述我迄今为止所做步骤: 1. 我创建了一个docker-compose.yml
。
web:
image: 'gitlab/gitlab-ce:latest'
restart: always
hostname: 'git.domain.com'
environment:
GITLAB_OMNIBUS_CONFIG: |
external_url 'http://git.domain.com'
# Add any other gitlab.rb configuration here, each on its own line
ports:
- '20080:80'
- '20443:443'
- '20022:22'
volumes:
- '/srv/gitlab/config:/etc/gitlab'
- '/srv/gitlab/logs:/var/log/gitlab'
- '/srv/gitlab/data:/var/opt/gitlab'
- 我开始使用它
docker-compose up -d
。
我有一个目录,其中存储着/srv/gitlab/config/ssl/
我的fullchain.pem
和我的。我使用这些文件转换了这些文件,以获得一个和一个文件(我也只是尝试了简单地复制这些文件,只是更改了文件扩展名,这样效果更好,因为我可以“读取”这些文件的内容……)。privkey.pem
openssl x509 ...
git.domain.com.crt
git.domain.com.key
我可以访问我的容器内的文件/etc/gitlab/ssl/git.domain.com.crt
并且我的日志显示:
2017/10/12 18:06:36 [emerg] 2176#0: PEM_read_bio_X509_AUX("/etc/gitlab /ssl/git.domain.com.crt") failed (SSL:error:0906D06C:PEMroutines:PEM_read_bio:no start line:Expecting: TRUSTED CERTIFICATE)
这些 .pem 文件是使用 letsencrypt 创建的。您可以在下面看到我的输出fullchain.pem
。
-----BEGIN CERTIFICATE-----
MIIFATCCA+mgAwIBAgISA0XaZQaUu+WRxU05xvO36gAFMA0GCSqGSIb3DQEBCwUA
MEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQD
ExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMzAeFw0xNzEwMTIxNjQ1MzZaFw0x
[...]
LzANBgkqhkiG9w0BAQsFAAOCAQEAQQBhsE1JYkmrdnLEZXp8iJU6niatU7MAgeab
7ztd7mKJMr8rQ03HrBDdjQaO8S5S9hykTs6zTrU7zkRoQ27oNKFIlszHVg+2DL3/
S8Veur+WhlzAi8MlchFkMf28YI0RkbxVuJcrV0yxE7tfqKg8X5rvbeH6PoDMYydO
a5ZY1CNpR7Jrq+Tn+NoOq9qU8e2+ZMnD2FVxDoe17okWKiXk1Ogs0q1MyPbrE2c4
4KTYq3lnyhNAo1orGrNmGe+xzs7ikUjy+wzoJy3kcIjuEg8H3Bj5eNWsWJllTF0Y
I76E+yK1e2MzDhBpim27hVbwBzn/lpm/dwYs+DpAnYb0Naw/9w==
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIEkjCCA3qgAwIBAgIQCgFBQgAAAVOFc2oLheynCDANBgkqhkiG9w0BAQsFADA/
[...]
-----END CERTIFICATE-----
有人能暗示我遗漏了什么吗?
多谢!
诚挚问候,帕特里克