openssl生成ssl证书_如何为Jenkins Server 配置SSL证书?

21374d764fba03c232752d0ef6d5cdbb.png

在项目环境中启用SSL来保护Jenkins至关重要,本文主要演示如何为Jenkins配置自签名的SSL证书。

在大多数情况下,您将在具有内部DNS的私有环境中使用Jenkins,并且可以从各个组织获取内部SSL证书。您还可以使用OpenSSL创建自签名SSL证书。另外,您可以使用服务来加密有效的SSL证书。但是这些证书必须每三个月更新一次。(本例使用自签名证书)
创建自签名证书

默认情况下,所有基于Linux和Unix的系统上都存在Openssl实用程序。

c48cbceb00e8ffd1770df4a92cfd491f.png

## 建立一个openssl目录mkdir openssl && cd openssl## 生成CA私钥文件openssl genrsa -out ca.key 2048## 使用CA密钥生成CA x509证书文件。定义证书的有效性。输入证书详细信息,例如通用名称,位置,国家/地区等。openssl req -x509 -new -nodes -key ca.key -sha256 -days 1825 -out ca.crt## 创建服务器私钥openssl genrsa -out server.key 2048## 使用私钥生成CSRopenssl req -new -key server.key -out server.csr## 使用ca.key,ca.crt和server.csr生成服务器SSL证书openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt -days 10000## 出现以下信息Signature oksubject=/C=CN/L=Default City/O=devops/CN=jenkins.devops.comGetting CA Private Key

将SSL密钥转换为PKCS12格式
openssl pkcs12 -export -out jenkins.p12 \-passout 'pass:123456' -inkey server.key \-in server.crt -certfile ca.crt -name jenkins.devops.com
将PKCS12转换为JKS格式
keytool -importkeystore -srckeystore jenkins.p12 \-srcstorepass '123456' -srcstoretype PKCS12 \-srcalias jenkins.devops.com -deststoretype JKS \-destkeystore jenkins.jks -deststorepass '123456' \-destalias jenkins.devops.com
将JKS添加到Jenkins路径
mkdir /etc/jenkinscp jenkins.jks  /etc/jenkins/## 更改密钥和文件夹的权限。chown -R jenkins: /etc/jenkinschmod 700 /etc/jenkinschmod 600 /etc/jenkins/jenkins.jks

修改Jenkins的配置

如果你用采用rpm方式安装的Jenkins,可以直接编辑/etc/sysconfig/jenkins配置文件。然后重启Jenkins。

[root@devops jenkinsssl]# grep "HTTPS" /etc/sysconfig/jenkins# HTTPS port Jenkins is listening on.JENKINS_HTTPS_PORT="8443"JENKINS_HTTPS_KEYSTORE="/etc/jenkins/jenkins.jks"# Password to access the keystore defined in JENKINS_HTTPS_KEYSTORE.JENKINS_HTTPS_KEYSTORE_PASSWORD="123456"# IP address Jenkins listens on for HTTP


如果您是在测试环境类似于java -jar jenkins.war 直接启动的,可以参考以下指令进行配置。(其实就是将参数直接定义在启动参数中)

#!/bin/bashexport JENKINS_HOME=~/jenkins#nohup java -jar jenkins.war --httpPort=8080 &nohup java -Dcom.sun.akuma.Daemon=daemonized \           -Djava.awt.headless=true  \           -jar jenkins.war  \           --httpPort=8080 \           --httpsPort=8443 \           --httpsKeyStore=/Users/zeyang/jenkins/jenkins.jks \           --httpsKeyStorePassword=123456 \           --httpsListenAddress=0.0.0.0 \           --debug=9 \           --handlerCountMax=100 \           --handlerCountMaxIdle=20 \           --accessLoggerClassName=winstone.accesslog.SimpleAccessLogger \           --simpleAccessLogger.format=combined  &
进行HTTPS测试

b14eaa362c5898b90984e37296a6192f.png


更多精彩关注 DevOps云学堂

持续交付流水线中的消息传递与协作实现

Mattermost+Jira集成加速DevOps工作流程

基于Kubernetes部署MatterMost实践

ChatOps实践-GitLab项目通知与协作实现

使用GitLabCI模板库的流水线优化实践

基于GitLab实现端到端DevOps流水线实践


c187f7c2389f3e65d4195b4aa467d70e.png

66f5aefc8b9ec08c4fa3b4986a15a342.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值