java 自制Tomcat Andorid IOS 端 证书

news/2024/7/20 20:48:41 标签: java, tomcat, ios

java 自制证书

  最近做项目用到Https 需要自制各种证书,Tomcat 用的JKS 格式, Andorid 端使用 BKS 格式, IOS 端使用 P12格式正式, 以及各种证书格式之间的转换。 正好研究了一下,记录下来,以便以后查阅。

1>  系统:win7

2> JDK 版本: JDK 1.6

3> 制作步骤:

3.1> keytool 主要参数说明

-genkey表示要创建一个新的密钥
-dname表示密钥的Distinguished Names,
CN=commonName
OU=organizationUnit
O=organizationName
L=localityName
S=stateName
C=country
Distinguished Names表明了密钥的发行者身份
-keyalg使用加密的算法,这里是RSA
-alias密钥的别名
-keypass私有密钥的密码,这里设置为changeit
-keystore 密钥保存在D:盘目录下的mykeystore文件中
-storepass 存取密码,这里设置为changeit,这个密码提供系统从mykeystore文件中将信息取出
-validity该密钥的有效期为 天 (默认为90天)

3.2> 制作Tomcat 端 JKS  格式正式

keytool -genkey -alias tomcat -keyalg RSA -keystore d:\tomcat.jks -dname "CN=localhost, OU=localhost, O=localhost, L=SH, ST=SH, C=CN" -keypass password -storepass password -validity 

注:生成证书时,CN要和服务器的域名相同,如果在本地测试,则使用localhost)

3.3> JKS --> CER

keytool -exportcert -alias tomcat -file D:\server.cer -keystore D:\tomcat.jks

3.4> Andorid 端 BKS 格式证书

制作Andorid 端 BKS 格式证书,需要下载支持BKS 格式证书的 Java security jar

3.4.1> 下载 bcprov-jdk16-141.jar

3.4.2> 将下载好的 jar 拷贝到 jdk\jre\lib\ext 下面

3.4.3> 配置 bcprov 支持

在 JDK_HOME\jre\security\ 目录下编辑 java.security文件, 添加对bcprov 的支持(数字可以自己定义)

security.provider.11=org.bouncycastle.jce.provider.BouncyCastleProvider

3.5> CER --> BKS

keytool -importcert -keystore D:\andorid.bks -file E:\server.cer -storetype BKS -provider org.bouncycastle.jce.provider.BouncyCastleProvider

3.6> IOS 端  JKS --> P12

keytool -importkeystore -srckeystore D:\tomcat.jks -srcstoretype JKS -deststoretype PKCS12 -destkeystore D:\ios.p12

3.7> P12 --> JKS

keytool -importkeystore -srckeystore D:\ios.p12 -srcstoretype PKCS12 -deststoretype JKS -destkeystore D:\ios_tomcat.jks

3.8> key&cet --> pfx

openssl pkcs12 -export -in client.crt -inkey client.key -out client.pfx

3.9> pfx --> jks

keytool -importkeystore -srckeystore mycert.pfx -destkeystore mycert.jks -srcstoretype PKCS12 -deststoretype JKS

openssl 证书格式转换

PEM--DER/CER(BASE64--DER编码的转换)

openssl x509 -outform der -in certificate.pem -out certificate.der

PEM--P7B(PEM--PKCS#7)

openssl crl2pkcs7 -nocrl -certfile certificate.cer -out certificate.p7b -certfile CACert.cer

PEM--PFX(PEM--PKCS#12)

openssl pkcs12 -export -out certificate.pfx -inkey privateKey.key -in certificate.crt -certfile CACert.crt

CER/DER--PEM(编码DER--BASE64)

openssl x509 -inform der -in certificate.cer -out certificate.pem

P7B--PEM(PKCS#7--PEM)

openssl pkcs7 -print_certs -in certificate.p7b -out certificate.cer

P7B--PFX(PKCS#7--PKCS#12)

openssl pkcs7 -print_certs -in certificate.p7b -out certificate.cer
openssl pkcs12 -export -in certificate.cer -inkey privateKey.key -out certificate.pfx -certfile CACert.cer

PFX/p12--PEM(PKCS#12--PEM)

openssl pkcs12 -in certificate.pfx -out certificate.cer

PEM BASE64--X.509文本格式

openssl x509 -in Key.pem -text -out Cert.pem

PFX文件中提取私钥(.key)

openssl pkcs12 -in mycert.pfx -nocerts -nodes -out mycert.key

PEM--SPC

openssl crl2pkcs7 -nocrl -certfile venus.pem -outform DER -out venus.spc

PEM--PVK(openssl 1.x开始支持)

openssl rsa -in mycert.pem -outform PVK -pvk-strong -out mypvk.pvk


http://www.niftyadmin.cn/n/307462.html

相关文章

oracle性能调优方法

Oracle性能优化基本步骤 1)设立合理的Oracle性能优化目标。 2)测量并记录当前的Oracle性能。 ~~取合适时间段awr报告,作为测量基线 3)确定当前Oracle性能瓶颈(Oracle等待什么、哪些SQL语句是该等待事件的成分&#xff…

JavaScript中的移动端开发和响应式设计

JavaScript中的移动端开发和响应式设计 引言 在当今数字化时代,移动设备已经成为人们生活中不可或缺的一部分。随着智能手机和平板电脑的普及,越来越多的人通过移动设备访问互联网。因此,为移动设备进行开发的需求也越来越大。而JavaScript…

KingbaseES V8R6 Deallocate 语句使用说明

用途 DEALLOCATE被用来释放一个之前PREPARE好的SQL语句。如果不显式地释放一个PREPARE语句,那么会话结束时会释放它。 prepare语句类似oracle的绑定变量 绑定过程: 1)PREPARE,准备绑定变量SQL 2)EXECUTE,绑定并执行 3)DEALLOCATE&…

Linux共享库、动态库详解

目录 一.静态库 二.动态库 三.静态库的制作与使用 四.动态库的制作与使用 在日常编程中我们不想让别人看到我们写的源码,但还需要发给对方使用,在这种情况下我们引入了静态库动态库,让对方用调库的方式也可以实现我们写的代码的功能&…

系统分析师之项目管理(十七)

一、范围管理 范围管理:确定项目的边界,即哪些工作是项目应该做的,哪些工作不应该包括在项目中。 二、时间管理 时间管理:也叫进度管理,就是用科学的方法,确定目标进度,编制进度计划和资源供应计…

125-Linux_守护进程

文章目录 1. 什么是Linux守护进程?2. 如何创建Linux守护进程?① 切换当前工作目录到根目录,这样可以避免守护进程在其它目录中的文件被占用。② 使用fork()函数创建子进程,并在父进程中退出。③ 在子进程中调用setsid()函数创建新…

8615 快乐

Description Lian是一个喜欢看动画片的人,自从成为ACMer(ACM爱好者)之后,他又迷上了网上做题。做题让他快乐,不过这也是需要付出精力的!! 假设有n道题,Lian做出第i道题后&#xff0…

Linux网络——Shell编程之数组

Linux网络——Shell编程之数组 一、概念二、数组的定义三、Shell数组操作1. 获取数组的所有元素的列表2. 获取数组的所有元素下标3.取数组的元素个数4. 获取数组的某个元素的值5.删除数组某个元素6.删除数组7.数组切片8.数组字符替换9.数组追加元素 四、数组在函数的传参 一、概…