Linux上的361.4。我有一个使用SSL的Nginx代理。我正尝试通过此SSL代理暴露Jenkins。为此,我已将nginx的SSL证书和密钥复制到/opt/certs/project. crt & /opt/certs/project. key。我已将所有权更改为Jenkins。现在,当我将以下命令添加到/usr/lib/systemd/system/jenkins.service时
[Service]
Type=notify
NotifyAccess=main
ExecStart=/usr/bin/jenkins --httpPort=-1 --httpsPort=8080 --httpsCertificate=/opt/certs/project.crt --httpsPrivateKey=/opt/certs/project.key
Restart=on-failure
SuccessExitStatus=143
然后,我做了systemctl守护进程realod和systemctl重新启动Jenkins。我看到下面的Jenkins日志错误。
无法识别的选项:--httpsCertificate=/选项/证书/项目.crt
此外,我尝试了下面没有做上述更改,,那里也我得到同样的错误信息。
Environment="JENKINS_OPTS= --httpPort=-1 --httpsPort=8080 --httpsCertificate=/opt/certs/project.crt --httpsPrivateKey=/opt/certs/project.key"
我还使用下面的命令将证书导入到JVM中。(虽然不确定这是否是必需的)
<JAVA_HOME>/bin/keytool -importcert -alias <server_name> -keystore <JAVA_HOME>/lib/security/cacerts -file /opt/certs/project.crt
希望有人能帮助我的错误信息。谢谢。
1条答案
按热度按时间soat7uwm1#
基于the proposal [JENKINS-68694] Winstone 6.1: Upgrade Jetty from 9.4.46.v20220331 to 10.0.11,标志
--httpsPrivateKey
和--httpsCertificate
已替换为--httpsKeyStore
和--httpsKeyStorePassword
修复
更新证书的格式以使用密钥库,例如使用
最后,使用项目.jks文件和jks密码,如下所示
ExecStart=/usr/bin/jenkins --httpPort=-1 --httpsPort=8080 --httpsKeyStore=/opt/certs/project.jks --httpsKeyStorePassword=JKS_PASSWORD
更多详细信息请参见此gist
变通办法
使用较旧的jenkins版本,例如2.362