在Synology NAS上使用Docker在GitLab上启用SSL

Cra*_*ami 10 ssl gitlab synology docker

我通过Docker容器中的Synology NAS(DSM 5.2)上的官方GitLab软件包安装了GitLab.

我现在想通过https而不是http访问Webinterface.我在几个帖子中看到,可以使用一些泊坞魔法,但没有找到任何详细说明.

任何人都可以解释如何实现这一目标?

遗憾的是,这不是违约.

hel*_*elt 10

使用DSM6,现在可以使用dsm docker接口进行更改(除了生成证书):

1)创建密钥/证书:

mkdir /volume1/docker/gitlab/certs
cd /volume1/docker/gitlab/certs
openssl genrsa -out gitlab.key 2048
openssl req -new -key gitlab.key -out gitlab.csr
openssl x509 -req -days 3650 -in gitlab.csr -signkey gitlab.key -out gitlab.crt
openssl dhparam -out dhparam.pem 2048
chmod 400 gitlab.key
Run Code Online (Sandbox Code Playgroud)

2)设置gitlab docker环境:

通过DSM gui设置gitlab docker环境变量

3)设置gitlab docker端口绑定: 为gitlab设置端口绑定

  • 如果已安装软件包更新,则必须重复此操作:/ (2认同)
  • 现在,您应该在以下位置生成“certs”文件夹:“/volume1/docker/gitlab/gitlab/certs”(注意双“/gitlab/”) (2认同)

Ana*_*yer 5

在 DSM 6.2.1 上

我只是安装了这个,这里的一些答案帮助了我,但我仍然遇到了问题。所以我想分享我的发现:

我想使用我已经在 Synology DSM 中生成的 let-encrypt 证书。

  1. 创建任务调度程序(用户定义的脚本)

    cp /usr/syno/etc/certificate/system/default/privkey.pem  /volume1/docker/gitlab-ce/gitlab/certs/gitlab.key
    cp /usr/syno/etc/certificate/system/default/fullchain.pem /volume1/docker/gitlab-ce/gitlab/certs/gitlab.crt
    
    Run Code Online (Sandbox Code Playgroud)

    安装 gitlab 时调整到您选择的名称/文件夹(在我的情况下为“gitlab-ce”)

  2. 在任何打开 ssl 的机器上创建一个 dhparam.pem 文件

    openssl dhparam -out dhparam.pem 2048
    
    Run Code Online (Sandbox Code Playgroud)

    我建议不要在 NAS 上这样做,因为它会很慢(你可能会增加关键的复杂性,因为你有病人在等待)

  3. 将 dhparam.pm 复制到 gitlab 中的 certificats 文件夹位置

    /volume1/docker/gitlab-ce/gitlab/certs/
    
    Run Code Online (Sandbox Code Playgroud)

    安装 gitlab 时调整到您选择的名称/文件夹(在我的情况下为“gitlab-ce”)

  4. 在包中心停止 gitlab(停止所有树 docker 容器)

  5. 在 Synology_gitlab 容器上

    5.1 添加两个环境变量

    GITLAB_HTTPS=true  
    SSL_SELF_SIGNED=false
    
    Run Code Online (Sandbox Code Playgroud)

    5.2. 将 gitlab 端口绑定(容器端口)从 80 更改为 443

如果 Synology DSM(或您手动)创建一个新证书,此方法将在设定时间(您在用户定义的脚本中选择)自动更新您生成的 ssl 证书。然而,这不是即时更新,但您可以从任务计划程序界面手动触发它。对于个人 NAS 解决方案,这种方法仍然是一种无忧无虑的方法。


Mar*_*nor 1

您还没有指出您正在使用哪个 gitlab 映像:

最常见的容器映像已包含有关如何启用 SSL 的详细说明: