docker jenkins实现自动化集成
docker使用jenkins自动化持续集成docker使用jenkins自动化持续集成docker使用jenkins自动化持续集成官网:https://www.jenkins.io/zh/doc/book/installing/参考文档:https://wiki.eryajf.net/pages/701.html
docker jenkins实现自动化集成
- docker jenkins实现自动化集成
-
- 安装配置
- jenkins安装
- 修改管理员密码
- 配置镜像加速地址
- 创建ssh秘钥
- 安装必要的插件
- 全局工具配置
- 配置Credentials 凭证
- 系统配置
- 其他设置
- 安装错误
-
- Caused: java.io.IOException: Failed to download from https://updates.jenkins.io/download/plugins/docker-plugin/1.2.2/docker-plugin.hpi
- jenkins.plugins.publish_over.BapPublisherException: Failed to connect and initialize SSH connection. Message: [Failed to connect session for config [192.168.0.87]. Message [Auth fail]]
- Client error: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
- stderr: fatal: unable to access 'https://192.168.0.87:8443/root/spring-demo.git/': SSL certificate problem: self signed certificate
- hudson.plugins.git.GitException: Could not init /var/jenkins_home/workspace/test-sonar
- Keytool服务器端证书配置
最新正好有时间,将公司项目整理一下,正好也重温一下jenkins使用及相关脚本编写,本节主要介绍通过docker搭建jenkins 部署项目,具体步骤参考以下内容,欢迎大家一起交流学习wx: hai1057718341
docker jenkins实现自动化集成
官网:https://www.jenkins.io/zh/doc/book/installing/
安装配置
jenkins安装
拉取镜像
镜像地址:
https://hub.docker.com/r/jenkinsci/blueocean/tags?page=1&ordering=last_updated
我们选择1.24.8稳定版安装。
docker pull jenkinsci/blueocean:1.24.8
查看镜像: docker images;
创建挂载目录
创建jenkins挂载宿主机目录,也可以不用创建,在容器启动时会自动创建。
mkdir -p /home/data/jenkins
chmod 777 -R /home/data/jenkins/
启动容器
docker run -dit --name jenkins -u root -p 8080:8080 -p 50000:50000 \
-v /home/data/jenkins:/var/jenkins_home \
-v /var/run/docker.sock:/var/run/docker.sock \
--restart=always --privileged=true \
jenkinsci/blueocean:1.24.8
命令说明:
–name jenkins:指定容器启动名称
-p 8080:8080 -p 50000:50000:将容器端口映射到宿主机中,-p后的第一个为宿主机端口,第二个为容器端口。
-v /home/data/jenkins:/var/jenkins_home:将容器/var/jenkins_home目录挂载到宿主机/home/data/jenkins目录
-v /var/run/docker.sock:/var/run/docker.sock:容器和docker守护进程进行通信,如果此镜像尚未下载,则此 docker run 命令 将自动为您下载镜像。此外,如果自上次运行此命令后发布了此镜像的任何更新, 则再次运行此命令将自动为您下载这些已发布的镜像更新。
–restart=always:自动启动,docker重启后容器自动启动
–privileged=true:容器具有root权限
查看日志: docker logs jenkins
从Jenkins控制台日志输出可以看到,默认生成的密码是一串字符,复制自动生成的密码记录下来。在浏览器访问jenkins解锁时用到,将此 密码 粘贴到管理员密码字段中,然后单击 继续 。
密码查看:
cat /var/jenkins_home/secrets/initialAdminPassword
或者在宿主机目录中查看
/home/data/jenkins/secrets/initialAdminPassword
登录测试
浏览器访问:http://192.168.0.87:8080/,默认用admin
将/var/jenkins_home/secrets/initialAdminPassword文件中密码复制到该页面,点击继续。
然后选择安装插件,如果不确定需要哪些插件,请选择 安装建议的插件 ,您可以通过Jenkins中的Manage Jenkins > Manage Plugins 页面在稍后的时间点安装(或删除)其他Jenkins插件。
创建管理员用户,输入用户账号密码等信息,创建后使用该用户登录,如果没有创建,使用admin账号继续。
配置jenkins访问地址。
配置完成,需要重启让插件生效,重启需要等待一会。
如果该页面在一分钟后不会自动刷新,请使用Web浏览器手动刷新页面。刷新界面如下,默认用户是admin, 密码查看启动日志。
登录后如下:
以上表示jenkins安装完成。
修改管理员密码
参考文档:https://blog.csdn.net/qq_18846873/article/details/105796663
1、查看管理员密码
登录到容器中查看cat /var/jenkins_home/secrets/initialAdminPassword文件。或者在宿主机/home/data/jenkins/secrets/initialAdminPassword目录中查看.
2、修改用户密码
在主机器上修改对应的文件,重启容器即可:
进入挂载的目录 /home/data/jenkins/users 或者登录到容器中进入 /var/jenkins_home/users目录下,进入想要修改的人的文件夹下,修改config.xml 文件内容:将如下标签内的内容替换成初始密码对应的内容即可:
#jbcrypt:$2a 10 10 10LorFxwiBZsvKf2LNUMkuR.Mge3ScPQtEGdyM4rS2ieIv0Z
初始密码123456对应的内容:
#jbcrypt:$2a 10 10 10LxMm9HqAI/R4z7gL57qTouW/Mrz8uSaBpCGKvKc7K6dK.g/0yk/uq
保存退出,重启Jenkins容器,然后通过网页使用123456登录即可。
配置镜像加速地址
进入jenkins宿主机/home/data/jenkins/目录,配置镜像加速地址,默认地址下载插件特别慢,这里使用清华大学官网镜像。
vim /home/data/jenkins/hudson.model.UpdateCenter.xml
创建ssh秘钥
登录jenkins服务器后,创建密钥,执行命令:
ssh-keygen -t rsa
一直回车即可,生成私钥id_rsa,公钥id_rsa.pub。
然后将公钥追加到 /root/.ssh/authorized_keys 后面。
cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys
chmod 600 /root/.ssh/authorized_keys
注意:这里是宿主机秘钥,不是Jenkins容器内部生成的秘钥。
安装必要的插件
使用admin登录jenkins, 点击Dashboard-》系统管理-》插件管理-》选择可选插件,然后搜索需要的插件安装即可。
我们需要一些必须插件支持,插件根据自己项目需求进行安装。
- docker plugin : 提供docker 构建和发布
- SSH plugin :提供通过SSH在远程主机执行命令,用于部署服务
- Publish Over SSH:提供通过SSH在远程主机执行命令,用于部署服务
- maven plugin、maven Integration、Pipeline Maven
Integration: 支持maven - GitLab、GitLab hook: 支持GitLab代码发布
进入jenkins管理界面-》系统管理-》插件管理-》可选插件,搜索对应插件安装即可。
全局工具配置
以下所有配置可以选择在线自动安装,在线安装后会在第一次使用到jdk/git/maven/docker等功能时会自动下载安装,后期使用到不在下载。
JDK配置
使用jenkins容器自带jdk,进入到jenkins容器中获取java环境安装地址.
docker exec -it -u root jenkins bash
echo $JAVA_HOME
或者使用在线自动下载安装指定jdk版本,然后保存即可,自动安装在有使用到的地方会自动下载。
我这里使用jenkins容器自带jdk进行配置。
Git配置
进入到jenkins容器查git
docker exec -it -u root jenkins bash
apk info -L git
或者也可以使用自动安装。
Maven配置
进入到jenkins容器查maven
docker exec -it -u root jenkins bash
apk info -L maven #查看maven安装路径,如果没有则执行安装
apk add maven #安装maven插件
或者使用自动安装即可。
自动安装maven在第一次使用到maven是会自动下载,后期使用maven将不在下载。
docker配置
1、安装docker插件
进入jenkins管理界面-》系统管理-》插件管理-》可选插件,搜多docker安装,安装完成如下。
2、配置docker服务
进入jenkins管理界面-》系统管理-》系统配置-》cloud-》点击The cloud configuration has moved to a separate configuration page.进入配置页,添加docker配置。
配置完成,点击保存即可。
配置Credentials 凭证
Credentials认证为全局认证管理,提供一个专门模块进行管理系统中用到的所有认证信息,后面可以在其他页签中使用,比如在系统配置中配置ssh,gitlab等需要选择认证时,可以选择这里配置好的认证方式。
登录jenkins, Dashboard->系统管理-》manage credentials
用户账号密码认证
该方式是当你jenkins访问gitlab仓库时使用的是https://192.168.0.87:8443/root/daison-admin.git这种方式。
添加如下Credentials:选择username password 模式认证:
Username: 登录gitlab服务用户账号
Password: 登录gitlab服务用户密码
ID: 唯一标识,可为空,自动生成一个唯一标识。
Description: 描述,可以随便写。
配置完成,点击保持即可。后续会使用到该配置。
SSH认证
要通过SSH认证方式 ,通过git@192.168.0.87:root/daison-admin.git这种访问。需要在Jenkins后台服务器上面,使用ssh-keygen -t rsa 命令行生成证书;然后用ssh-copy-id 命令将生成的公钥发送到server上面去,也就是gitlab服务器上面去:
ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.0.87
然后添加Credentials:
Username:自己随便定义一个名称;
private key: 选择第一个,需要把你刚生成的证书的私钥填到这个框框里;
Password:证书的密码 ,若是为空,则不填。
添加完成如下:
Api Token认证
该方式是当你jenkins访问gitlab仓库时使用的是aip token认证配置。
在manage Credentials 中,添加相应的gitlab api token
Domain: 作用域,选择全局凭证
Kind: 选择认证方式,这里使用gitlab token认证
Scope: 作用范围,选择全局
API token: gitlab access token
ID: 内部唯一 ID,通过该ID 从作业和其他配置中识别这些凭据。通常留空,在这种情况下会生成一个 ID,这对于使用可视化表单创建的工作来说很好。在使用脚本配置中的凭据时明确指定很有用。
获取gitlab access token: 登录gitlab,点击settings-》access tokens。
Name:名称,可以自己随便定义一个。
Expires as: 过期时间,可以不用设置,即永不过期
Scopes: 使用范围,勾选支持那些功能。
配置完成,点击create personal access token创建token如下:
复制该token到刚才添加gitlab token页面,保存即可,这里配置的是全局,以后在系统配置中添加gitlab可以直接选择配置好的认证方式即可。
系统配置
配置Publish over SSH
1、安装 Publish over SSH 插件
Dashboard->系统管理-》插件管理-》可选插件,搜索Publish over SSH安装即可。
2、创建ssh秘钥
登录jenkins服务器后,创建密钥,执行命令:
ssh-keygen -t rsa
一直回车即可,生成私钥id_rsa,公钥id_rsa.pub。
然后将公钥追加到 authorized_keys 后面。
cat /root/.ssh/id_rsa.pub >>/root/.ssh/authorized_keys
chmod 600 /root/.ssh/authorized_keys
3、配置 Publish over SSH
在 Jenkins 中点击【系统管理】->【系统配置】,找到 Publish over SSH 插件,配置如下:
注意:key是刚才上面生成的私钥,即/root/.ssh/id_rsa文件全部内容,保护begin和end.
配置完成,点击test connection 测试ssh链接是否正常,如果提示success表示ssh配置成功。
配置SSH remote hosts
1、ssh插件安装
Dashboard->系统管理-》插件管理-》可选插件,搜索SSH plugin安装即可,安装完成如下。
2、ssh配置
参考文档:https://blog.csdn.net/don_chiang709/article/details/105098509
Dashboard->系统管理-》系统配置-》SSH remote hosts。
点击添加ssh后,证书添加这里选择不了,点击添加按钮也没反应,可能兼容性问题导致。可以通过在系统管理》manager credentials里面添加认证方式,如何添加全局认证方式查看上面配置《配置Credentials凭证》。添加完成后,在进入添加ssh页面,这时就可以选择了。
Hostname: 通过ssh链接的服务器ip地址
Port: 通过ssh链接的服务器端口
Credentials: 认证方式,这里是提前在全局认证管理里面配置的,参考《peizhi credentials凭证》。
以上配置完成,点击check connection测试,提示success表示链接成功。
配置GitLab
1、插件安装
Dashboard->系统管理-》插件管理-》可选插件,搜索gitlab、gitlab hook安装,完整完成如下。
2、gitlab配置
Dashboard->系统管理-》系统配置-》GitLab。
Connection name: 链接名称,随便起一个名称
Gitlab host url: gitlab服务地址
Credentials: 认证方式,通过token认证。
点击add,填写相应的gitlab api token,这里配置token可以提前在manager credentials中配置好,具体配置可以参考《配置credentials认证方式》.
Domain: 作用域,选择全局凭证
Kind: 选择认证方式,这里使用gitlab token认证
Scope: 作用范围,选择全局
API token: gitlab access token
ID: 内部唯一 ID,通过该 ID 从作业和其他配置中识别这些凭据。通常留空,在这种情况下会生成一个 ID,这对于使用可视化表单创建的工作来说很好。在使用脚本配置中的凭据时明确指定很有用。
获取gitlab access token: 登录gitlab,点击settings-》access tokens。
Name:名称,可以自己随便定义一个。
Expires as: 过期时间,可以不用设置,即永不过期
Scopes: 使用范围,勾选支持那些功能。
配置完成,点击create personal access token创建token如下:
复制该token到刚才jenkins系统配置中添加gitlab token页面。
配置完成后,点击add, 回到gitlab配置页,然后选择刚才配置的token认证
点击test connection 测试链接gitlab, 提示success 表示gitlab配置成功。
配置SonarQube
1、插件安装
Dashboard->系统管理-》插件管理-》可选插件,搜索sonar插件安装,完整完成如下。
2、sonarqube配置
Dashboard->系统管理-》系统配置-》soanrqube servers。
Name: 随便起一个名称,最好是服务器ip+服务名, 一看就知道是那台服务器。
Server url: 链接sonarqube服务地址。
Server authentication token: SonarQube 身份验证令牌。禁用匿名访问时必填。
配置完成,点击保存即可。
其他设置
jenkins添加用户并授权
1、安装授权插件role-strategy
安装Role-based Authorization Strategy插件,插件名称是role-strategy
安装插件有点慢,稍等2分钟,然后刷新界面,重新登录查看已经安装插件。
2、添加用户并授权
1、添加用户
使用admin登录jenkins, 点击Dashboard-》系统管理-》管理用户,点击Create User
填写用户名、密码等相关信息,点击按钮添加成功。
添加完成如下:
3、授权
点击Dashboard-》系统管理-》全局安装设置, 选择 <安全矩阵>
选择刚添加的用户,赋予相关权限。
勾选用户权限,点击保存。
安装错误
Caused: java.io.IOException: Failed to download from https://updates.jenkins.io/download/plugins/docker-plugin/1.2.2/docker-plugin.hpi
参考: https://blog.csdn.net/u013019701/article/details/103649773
https://blog.csdn.net/LeiLiFengX/article/details/80467919
https://blog.csdn.net/qq_36521507/article/details/105893026
https://blog.csdn.net/qq_36521507/article/details/103807796
以上参考文档都一一测试过,最后使用https://blog.csdn.net/qq_36521507/article/details/103807796 该网友的解决插件下载问题。
解决办法:
1、修改default.json
进入到jenkins安装容器服务器宿主机 /home/data/jenkins/updates目录,将default.json先备份,然后下载该文件到本地,修改插件地址。
将https://updates.jenkins.io/download/plugins 替换为
http://mirror.xmission.com/jenkins/plugins
然后将替换后的插件覆盖宿主机目录下得default.json文件。
1、修改配置的镜像地址
进入到jenkins安装容器服务器宿主机 /home/data/jenkins/目录,修改hudson.model.UpdateCenter.xml 中的镜像地址。
[root@gitlab jenkins]# vim /home/data/jenkins/hudson.model.UpdateCenter.xml
<?xml version='1.1' encoding='UTF-8'?>
<sites>
<site>
<id>default</id>
<url>http://mirror.xmission.com/jenkins/updates/update-center.json</url>
</site>
</sites>
jenkins.plugins.publish_over.BapPublisherException: Failed to connect and initialize SSH connection. Message: [Failed to connect session for config [192.168.0.87]. Message [Auth fail]]
使用publish over ssh插件的公共配置,来连接SSH Server机器时提示错误,主要是我生成了秘钥没有将公钥拷贝到authorized_keys文件中导致。
将公钥追加到 /root/.ssh/authorized_keys 后面。
cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys
chmod 600 /root/.ssh/authorized_keys
Client error: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
解决办法:
浏览器访问gitlab网页,然后将证书导出到本地。
导出文件名gitlab.cer,然后将证书上传到jenkins服务器,将证书导入到jenkins安全证书库中。
查看jenkins容器id:
docker inspect jenkins
查询证书库目录,根据jenkins容器id找到对应的目录,然后将证书导入库中。
find /var/lib/* -name "cacerts"
[root@gitlab merged]#
[root@gitlab merged]# keytool -importcert -alias my_gitlab -keystore /var/lib/docker/overlay2/23a51de4e5a85255b928dcbbb6d97782fae9f7aebeaf66423720b1c67297b867/merged/opt/java/openjdk/jre/lib/security/cacerts -file /root/gitlab.cer
输入密钥库口令: changeit
所有者: CN=192.168.0.87, OU=iTranswarp, O=iTranswarp, L=iTranswarp, ST=Mars, C=US
发布者: CN=192.168.0.87, OU=iTranswarp, O=iTranswarp, L=iTranswarp, ST=Mars, C=US
序列号: a9b4abcea08d9166
有效期为 Wed Aug 11 18:53:22 CST 2021 至 Sat Aug 09 18:53:22 CST 2031
证书指纹:
MD5: 2B:47:32:3B:8E:35:42:48:0A:66:D0:20:8C:75:C1:CD
SHA1: F7:8E:CD:51:49:A4:C0:55:DF:90:83:5E:89:59:BD:4F:C1:B0:96:B6
SHA256: BE:EE:F0:30:83:6F:08:93:DD:BC:75:99:B2:7F:62:C3:C4:C7:FF:CD:E1:C9:03:36:A4:EA:EB:9F:46:D0:31:94
签名算法名称: SHA256withRSA
主体公共密钥算法: 1024 位 RSA 密钥
版本: 1
是否信任此证书? [否]: y
证书已添加到密钥库中
[root@gitlab merged]#
stderr: fatal: unable to access ‘https://192.168.0.87:8443/root/spring-demo.git/’: SSL certificate problem: self signed certificate
Gitlab构建任务错误
解决办法:
进入jenkins容器,执行忽略https认证。
docker exec -it jenkins bash
git config --global http.sslVerify false
hudson.plugins.git.GitException: Could not init /var/jenkins_home/workspace/test-sonar
Started by user admin
Running as SYSTEM
Building in workspace /var/jenkins_home/workspace/test-sonar
The recommended git tool is: NONE
using credential 6edf3a23-2a34-4682-909d-62b6989bedbd
Cloning the remote Git repository
Cloning repository https://192.168.0.87:8443/root/spring-demo.git
> usr/bin/git init /var/jenkins_home/workspace/test-sonar # timeout=10
ERROR: Error cloning remote repo 'origin'
hudson.plugins.git.GitException: Could not init /var/jenkins_home/workspace/test-sonar
at org.jenkinsci.plugins.gitclient.CliGitAPIImpl$5.execute(CliGitAPIImpl.java:1048)
at org.jenkinsci.plugins.gitclient.CliGitAPIImpl$2.execute(CliGitAPIImpl.java:803)
at hudson.plugins.git.GitSCM.retrieveChanges(GitSCM.java:1227)
at hudson.plugins.git.GitSCM.checkout(GitSCM.java:1305)
at hudson.scm.SCM.checkout(SCM.java:505)
at hudson.model.AbstractProject.checkout(AbstractProject.java:1211)
at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:636)
at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:86)
at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:508)
at hudson.model.Run.execute(Run.java:1906)
at hudson.maven.MavenModuleSetBuild.run(MavenModuleSetBuild.java:543)
at hudson.model.ResourceController.execute(ResourceController.java:97)
at hudson.model.Executor.run(Executor.java:429)
Caused by: hudson.plugins.git.GitException: Error performing git command: usr/bin/git init /var/jenkins_home/workspace/test-sonar
at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:2689)
at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:2611)
at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:2607)
at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommand(CliGitAPIImpl.java:1974)
at org.jenkinsci.plugins.gitclient.CliGitAPIImpl$5.execute(CliGitAPIImpl.java:1046)
... 12 more
Caused by: java.io.IOException: Cannot run program "usr/bin/git" (in directory "/var/jenkins_home/workspace/test-sonar"): error=2, No such file or directory
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048)
at hudson.Proc$LocalProc.<init>(Proc.java:252)
at hudson.Proc$LocalProc.<init>(Proc.java:221)
at hudson.Launcher$LocalLauncher.launch(Launcher.java:996)
at hudson.Launcher$ProcStarter.start(Launcher.java:508)
at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:2674)
... 16 more
Caused by: java.io.IOException: error=2, No such file or directory
at java.lang.UNIXProcess.forkAndExec(Native Method)
at java.lang.UNIXProcess.<init>(UNIXProcess.java:247)
at java.lang.ProcessImpl.start(ProcessImpl.java:134)
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029)
... 21 more
ERROR: Error cloning remote repo 'origin'
Finished: FAILURE
从以上日志可以看出 > usr/bin/git init /var/jenkins_home/workspace/test-sonar # timeout=10
这一行在执行时有问题,仔细检查项目配置,发现没问题,实际上是有问题,usr/bin/git 这个目录权少一个斜杠导致,应该是/usr/bin/git ,修改git配置后,重新执行build成功。
Keytool服务器端证书配置
生成服务器端证书
keytool -genkeypair -v -alias server -keyalg RSA -validity 3650 -keystore ./server.ks -storepass 123456 -keypass 123456 -dname "CN=192.168.2.89,OU=zfx,O=zfx,L=gz,ST=gd,C=cn"
导出服务器端证书
keytool -exportcert -alias server -keystore ./server.ks -file ./server.cer -storepass 123456
导入服务器端证书到服务器信任证书列表
keytool -importcert -alias serverca -keystore ./server_trust.ks -file ./server.cer -storepass 123456
导入客户根证书到服务器信任证书列表
keytool -importcert -alias urootca -keystore ./server_trust.ks -file ./uroot.cer -storepass 123456
使用如下的命令查看信任的证书信息:
keytool -list -keystore ./server_trust.ks -storepass 123456
Keytool命令常用参数#
-genkeypair在用户主目录中创建一个默认文件”.keystore”,还会产生一个mykey的别名,mykey中包含用户的公钥、私钥和证书(在没有指定生成位置的情况下,keystore会存在用户系统默认目录)
-alias 产生别名 每个keystore都关联这一个独一无二的alias,这个alias通常不区分大小写
-keystore 指定密钥库的路径(产生的各类信息将不在.keystore文件中)
-keyalg 指定密钥的算法 (如 RSA,DSA,默认值为:DSA)
-validity 指定创建的证书有效期多少天(默认 90)
-keysize 指定密钥长度 (默认 1024
-storepass 指定密钥库的密码(获取keystore信息所需的密码)
-keypass 指定别名条目的密码(私钥的密码)
-dname 指定证书发行者信息 其中: “CN=名字与姓氏,OU=组织单位名称,O=组织名称,L=城市或区域名 称,ST=州或省份名称,C=单位的两字母国家代码”
-list 显示密钥库中的证书信息如:keytool -list -v –keystore path/to/keystore -storepass password
-v 显示密钥库中的证书详细信息
-exportcert 导出指定别名的证书,如:keytool - exportcert -alias theAlias -keystore path/to/keystore -file path/to/keystore/cert -storepass pass
-file 参数指定导出到文件的文件名
-delete 删除密钥库中某条目 keytool -delete -alias theAlias -keystore path/to/keystore –storepass pass
-printcert 控制台打印证书的详细信息,如:keytool -printcert -file path/to/keystore/cert -v
-keypasswd 修改密钥库中指定条目口令 keytool -keypasswd -alias theAlias -keypass oldPass -new newPass -storepass keystorePass -keystore path/to/keystore
-storepasswd 修改keystore口令 keytool -storepasswd -keystore path/to/keystore -storepass oldPass -new newPass
-importcert 将已签名数字证书导入密钥库 keytool -importcert -alias certAlias -keystore path/to/keystore -file path/to/keystore/cert
更多推荐
所有评论(0)