gpt4 book ai didi

ssl - 使用 docker 设置安全的 Jenkins master

转载 作者:IT老高 更新时间:2023-10-28 12:43:01 26 4
gpt4 key购买 nike

我想使用 docker 在 ec2 上设置一个安全的 Jenkins 主服务器。我在这里使用标准的 jenkins docker 文件:https://registry.hub.docker.com/_/jenkins/

默认情况下,它会打开一个不安全的 8080 http 端口。但是我希望它使用带有 https 的标准 443 端口(起初我想使用自签名 ssl 证书)。

我对该主题进行了一些研究,并找到了几种可能的解决方案。我对 docker 并没有真正的经验,所以我仍然找不到一个我可以使用或实现的简单的。以下是我找到的一些选项:

  • 在 8080 上使用标准 jenkins docker,但在我的 ec2 实例上配置安全的 apache 或 nginx 服务器,以重定向流量。我不喜欢这样,因为服务器将在 docker 之外,所以我无法将其保留在版本控制中
  • 以某种方式修改 jenkins docker 文件以使用根据 https://wiki.jenkins-ci.org/display/JENKINS/Starting+and+Accessing+Jenkins 配置的 https 启动 jenkins .我不知道该怎么做。我需要创建自己的 docker 容器吗?
  • 使用带有安全 nginx 的 docker 文件,例如 https://registry.hub.docker.com/u/marvambass/nginx-ssl-secure/并以某种方式组合两个 docker 容器或使它们通信?也不知道该怎么做。

有经验的人可以推荐我最好的解决方案吗?

附:我不确定 ec2 会给我带来多少麻烦,但我认为它只是在安全组中打开 443。

最佳答案

在通过一些关于 Docker 的教程后,我发现最容易遵循的选项是 2 号。Jenkins docker 镜像以一种您可以轻松将参数传递给 jenkins 的方式声明入口点。

假设您在 ubuntu ec2 实例的主文件夹中有您的 keystore (例如,本示例中的自签名)作为 jenkins_keystore.jks。以下是如何生成的示例:

keytool -genkey -keyalg RSA -alias selfsigned -keystore jenkins_keystore.jks -storepass mypassword -keysize 2048

现在您可以轻松地将 jenkins 配置为仅在 https 上运行,而无需创建自己的 docker 镜像:

docker run -v /home/ubuntu:/var/jenkins_home -p 443:8443 jenkins --httpPort=-1 --httpsPort=8443 --httpsKeyStore=/var/jenkins_home/jenkins_keystore.jks --httpsKeyStorePassword=mypassword
  • -v/home/ubuntu:/var/jenkins_home 将主机主文件夹暴露给 jenkins docker 容器
  • -p 443:8443 将容器中的8443 jenkins端口映射到宿主机的443端口
  • --httpPort=-1 --httpsPort=8443 阻止 jenkins http 并在容器内的端口 8443 上使用 https 公开它
  • --httpsKeyStore=/var/jenkins_home/jenkins_keystore.jks --httpsKeyStorePassword=mypassword 提供已从主机主文件夹映射到容器 /var/jenkins_home/的 keystore 文件夹。

关于ssl - 使用 docker 设置安全的 Jenkins master,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29755014/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com