本文是关于如何为 Jenkins
设置 HTTPS
的快速指南。已经有许多指南可用。我读了其中的一些。但有两件事让我感到奇怪。首先,一些指南希望您更改 Jenkins
的中央 systemd
文件(而不是覆盖文件),其次,他们希望您创建一个 JKS
文件(而不是 PKCS #12)。
我的警告是:永远不要覆盖 /etc/systemd/system
中的文件。这些文件由您的系统和包管理器管理。如果要添加或更改 Jenkins 的设置,请使用 /etc/systemd/system/jenkins.service.d/override.conf。 JKS 是专有格式。另一方面,PCKS #12 是一个行业标准,也是自 Java 9 以来的默认密钥库格式!
首先,您需要一个证书。您可以使用 openssl 创建一个:
openssl req -newkey rsa:2048 -nodes -keyout key.pem -x509 -days 365 -out jenkinns.pem
当然,如果您已有证书,则无需创建新证书。但是您必须将其转换为 PKCS #12 文件。
继续上面的示例,您必须将文件 key.pem 和 jenkins.pem 合并到 PKCS #12 密钥库中:
openssl pkcs12 -inkey key.pem -in jenkins.pem -export -out jenkins.p12
Enter fullscreen mode Exit fullscreen mode
最后,将文件 jenkins.p12
放在 Jenkins 可以访问的地方。我把它放在 /var/lib/jenkins
中。
sudo mv ./jenkins.p12 /var/lib/jenkins
# 我假设您使用默认设置运行Jenkins。当然,如果你用不同的用户运行它,你就必须改写“chown”!
sudo chown jenkins:jenkins /var/lib/jenkins/jenkins.p12
首先告诉 Jenkins 如何使用秘钥文件。创建文件 /etc/systemd/system/jenkins.service.d/override.conf
并将以下内容放入其中。
[Service]
Environment="JENKINS_HTTPS_PORT=8443"
Environment="JENKINS_HTTPS_KEYSTORE=/var/lib/jenkins/jenkins.p12"
Environment="JENKINS_HTTPS_KEYSTORE_PASSWORD=<your-password>"
现在,重新启动 Jenkins 服务。
sudo systemctl daemon-reload
sudo systemctl restart jenkins.service
全做完了
现在访问 https://localhost:8443
应该会为您提供 Jenkins 登录页面,且是有效且安全的 https 连接。
[1]
/etc/systemd/system/jenkins.service.d/override.conf: https://www.jenkins.io/doc/book/system-administration/systemd-services/[2]
PCKS #12: https://en.wikipedia.org/wiki/PKCS_12[3]
行业标准: https://en.wikipedia.org/wiki/PKCS