keytool和openssl生成的证书转换
来源:互联网 发布:淘宝举报假冒品牌 编辑:程序博客网 时间:2024/05/21 11:17
keytool生成证书示例
生成私钥+证书:
keytool -genkey -alias client -keysize 2048 -validity 3650 -keyalg RSA -dname "CN=localhost" -keypass $client_passwd -storepass $client_passwd -keystore ClientCert.jks
生成文件文件ClientCert.jks
导出证书:
keytool -export -alias client -keystore ClientCert.jks -storepass $client_passwd -file ClientCert.crtCertificate stored in file <ClientCert.crt>~/tmp/cert# lltotal 8-rw-r--r-- 1 root root 715 Jun 14 20:24 ClientCert.crt-rw-r--r-- 1 root root 2066 Jun 14 20:21 ClientCert.jks
keytool工具不支持导出私钥。
openssl生成证书示例
~/tmp/cert# openssl genrsa -des3 -out private.pem 1024Generating RSA private key, 1024 bit long modulus.............................++++++...........++++++e is 65537 (0x10001)Enter pass phrase for private.pem:Verifying - Enter pass phrase for private.pem:~/tmp/cert# lltotal 4-rw-r--r-- 1 root root 963 Jun 14 20:27 private.pem
创建证书请求:
~/tmp/cert# openssl req -subj "/C=CN/ST=BJ/L=BJ/O=HW/OU=HW/CN=CL/emailAddress=xxx@xxx.com" -new -out cert.csr -key private.pemEnter pass phrase for private.pem:~/tmp/cert# lltotal 8-rw-r--r-- 1 root root 664 Jun 14 20:43 cert.csr-rw-r--r-- 1 root root 963 Jun 14 20:27 private.pem
自签发证书:
~/tmp/cert# openssl x509 -req -in cert.csr -out public.crt -outform pem -signkey private.pem -days 3650Signature oksubject=/C=CN/ST=BJ/L=BJ/O=HW/OU=HW/CN=CL/emailAddress=xxx@xxx.comGetting Private keyEnter pass phrase for private.pem:~/tmp/cert# lltotal 12-rw-r--r-- 1 root root 664 Jun 14 20:43 cert.csr-rw-r--r-- 1 root root 963 Jun 14 20:27 private.pem-rw-r--r-- 1 root root 871 Jun 14 20:44 public.crt
转换
keytool和openssl生成的证书相互之间无法识别,keytool生成的为jsk文件,openssl默认生成的为PEM格式文件。需要先转换成pkcs12格式,然后再使用对方的命令转换成需要的格式。
keytool生成的证书转换为PEM格式
~/tmp/cert# keytool -importkeystore -srcstoretype JKS -srckeystore ServerCert.jks -srcstorepass 123456 -srcalias server -srckeypass 123456 -deststoretype PKCS12 -destkeystore client.p12 -deststorepass 123456 -destalias client -destkeypass 123456 -nopromptroot@SZV1000101361:~/tmp/cert# lltotal 24-rw-r--r-- 1 root root 664 Jun 14 20:43 cert.csr-rw-r--r-- 1 root root 1708 Jun 14 21:01 client.p12-rw-r--r-- 1 root root 963 Jun 14 20:27 private.pem-rw-r--r-- 1 root root 871 Jun 14 20:44 public.crt-rw-r--r-- 1 root root 1372 Jun 14 20:57 ServerCert.jks-rw-r--r-- 1 root root 1682 Jun 14 20:55 server.p12
导出证书:
~/tmp/cert# openssl pkcs12 -in client.p12 -passin pass:$passwd -nokeys -out client.pemMAC verified OK
导出私钥:
~/tmp/cert# openssl pkcs12 -in client.p12 -passin pass:$passwd -nocerts -out client.crtMAC verified OKEnter PEM pass phrase:Verifying - Enter PEM pass phrase:root@SZV1000101361:~/tmp/cert# lltotal 32-rw-r--r-- 1 root root 664 Jun 14 20:43 cert.csr-rw-r--r-- 1 root root 1184 Jun 14 21:10 client.crt-rw-r--r-- 1 root root 1708 Jun 14 21:01 client.p12-rw-r--r-- 1 root root 1127 Jun 14 21:07 client.pem-rw-r--r-- 1 root root 963 Jun 14 20:27 private.pem-rw-r--r-- 1 root root 871 Jun 14 20:44 public.crt-rw-r--r-- 1 root root 1372 Jun 14 20:57 ServerCert.jks-rw-r--r-- 1 root root 1682 Jun 14 20:55 server.p12
PEM格式证书转换为jks文件
转换为pkcs12格式:
~/tmp/cert# openssl pkcs12 -export -in public.crt -inkey private.pem -out server.p12 -name server -passin pass:${passwd} -passout pass:${passwd}~/tmp/cert# lltotal 16-rw-r--r-- 1 root root 664 Jun 14 20:43 cert.csr-rw-r--r-- 1 root root 963 Jun 14 20:27 private.pem-rw-r--r-- 1 root root 871 Jun 14 20:44 public.crt-rw-r--r-- 1 root root 1682 Jun 14 20:55 server.p12
导入到jks中:
~/tmp/cert# keytool -importkeystore -srckeystore server.p12 -srcstoretype PKCS12 -srcstorepass ${passwd} -alias server -deststorepass ${passwd} -destkeypass ${passwd} -destkeystore ServerCert.jks~/tmp/cert# lltotal 20-rw-r--r-- 1 root root 664 Jun 14 20:43 cert.csr-rw-r--r-- 1 root root 963 Jun 14 20:27 private.pem-rw-r--r-- 1 root root 871 Jun 14 20:44 public.crt-rw-r--r-- 1 root root 1372 Jun 14 20:57 ServerCert.jks-rw-r--r-- 1 root root 1682 Jun 14 20:55 server.p12
阅读全文
0 0
- keytool和openssl生成的证书转换
- openssl和keytool生成证书
- java中keytool生成的jks证书转换为openssl格式证书
- 利用keytool/openSSL来生成服务器和客户端证书
- 使用keytool + openssl 生成自签名的tomcat服务器证书
- 利用keytool、openssl生成证书文件
- 用OpenSSL生成CA根证书来签名Keytool生成的证书请求
- 利用keytool/Openssl来生成服务端和客户端证书,根证书。
- 利用keytool/Openssl来生成服务端和客户端证书,根证书。
- 使用keytool和openssl工具生成SSL双向认证密钥对和证书库
- 证书操作(openssl、keytool)
- OPENSSL、KEYTOOL生成服务器与客户端证二级证书签名
- 服务器证书转换命令(openssl+keytool工具)
- 使用keytool生成证书和秘钥
- JDK中的证书生成和管理工具keytool
- JDK 中的证书生成和管理工具 keytool
- openssl keytool 制作签名证书
- Openssl+Keytool自签发证书
- qt的坑:Could not create directory "E:\oysl\QT\Error in " Util.asciify("build-untitle
- iOS 11 中uitablview Header 设置无效
- Vue微型架构:requestBody网络请求的模式与自定义协议的封装
- 加载更多功能实现
- 2017hdu新生赛 1005 整数的Alvin值
- keytool和openssl生成的证书转换
- activity隐式启动和启动其他app
- 调试javascript的技巧
- Java序列化机制和原理
- LeetCode基础--二叉树-判断二叉树是否平衡
- Tensorflow Serving不支持py_func
- Android性能优化之App瘦身攻略
- Spring aop报错:com.sun.proxy.$Proxyxxx cannot be cast to yyy
- zabbix 相关(索引)