openssl制作ssl证书_keytool生成证书

openssl制作ssl证书_keytool生成证书一、生成RSA证书密钥对下载OpenSSLwindows版本https://pan.baidu.com/s/1cBvJ-mwqzuyRwfq2xqHsLg1)生成RSA私钥:opensslgenrsa-outrsa_2048_private_key.pem2048该命令会生成2048位的私钥,生成成功的界面如下:此时我们就可以在当前路径下看到rsa_private_key.pem文件了…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

一、生成RSA证书密钥对

下载OpenSSL windows版本

https://pan.baidu.com/s/1cBvJ-mwqzuyRwfq2xqHsLg

1)生成RSA私钥:

openssl genrsa -out rsa_2048_private_key.pem 2048

该命令会生成2048位的私钥,生成成功的界面如下:

openssl制作ssl证书_keytool生成证书

此时我们就可以在当前路径下看到rsa_private_key.pem文件了。

2)把RSA私钥转换成PKCS8格式

输入命令并回车

openssl pkcs8 -topk8 -inform PEM -in rsa_2048_private_key.pem -outform PEM -nocrypt

得到生成功的结果,这个结果就是PKCS8格式的私钥,如下图:

openssl制作ssl证书_keytool生成证书

3)生成 pks8 格式的 rsa 私钥

openssl pkcs8 -topk8 -in rsa_2048_private_key.pem -out pkcs8_rsa_2048private_key.pem -nocrypt

或者:

openssl pkcs8 -topk8 -inform PEM -in rsa_2048_private_key.pem -outform PEM –nocrypt -out pkcs8_rsa_2048private_key.pem

4) 生成RSA公钥

输入命令并回车,

openssl rsa -in rsa_2048_private_key.pem -pubout -out rsa_2048_public_key.pem

得到生成成功的结果,如下图:

openssl制作ssl证书_keytool生成证书

此时,我们可以看到一个文件名为rsa_public_key.pem的文件,打开它,可以看到—–BEGIN PUBLIC KEY—–开头,

—–END PUBLIC KEY—–结尾的没有换行的字符串,这个就是公钥。

二、生成IOS端及JAVA端使用的RSA证书

1)生成RSA私钥:

openssl genrsa -out rsa_2048_private_key.pem 2048

2. 生成证书请求文件rsaCertReq.csr

openssl req -new -key rsa_2048_private_key.pem -out rsaCerReq.csr

注意:这一步会提示输入国家、省份、mail等信息,可以根据实际情况填写,或者全部不用填写,直接全部敲回车.

3. 生成证书rsaCert.crt,并设置有效时间为10年

openssl x509 -req -days 3650 -in rsaCerReq.csr -signkey rsa_2048_private_key.pem -out rsaCert.crt

4. 生成供iOS使用的公钥文件public_key.der

openssl x509 -outform der -in rsaCert.crt -out public_key.der

5. 生成供iOS使用的私钥文件private_key.p12

openssl pkcs12 -export -out private_key.p12 -inkey rsa_private_key.pem -in rsaCert.crt

注意:这一步会提示给私钥文件设置密码,直接输入想要设置密码即可,然后敲回车,然后再验证刚才设置的密码,再次输入密码,然后敲回车,完毕!

在解密时,private_key.p12文件需要和这里设置的密码配合使用,因此需要牢记此密码.

6. 生成供Java使用的公钥rsa_public_key.pem

openssl rsa -in rsa_2048_private_key.pem -out rsa_2048_public_key.pem -pubout

7. 生成供Java使用的私钥pkcs8_private_key.pem

openssl pkcs8 -topk8 -in rsa_2048_private_key.pem -out pkcs8_rsa_2048private_key.pem -nocrypt

或者:

openssl pkcs8 -topk8 -inform PEM -in rsa_2048_private_key.pem -outform PEM –nocrypt -out pkcs8_rsa_2048private_key.pem

全部执行成功后,会生成如下文件,其中public_key.der和private_key.p12就是iOS需要用到的文件

1.从pfx格式的证书提取出密钥和证书

set OPENSSL_CONF=openssl.cnf

openssl pkcs12 -in my.pfx -nodes -out server.pem

openssl rsa -in server.pem -out server.key

openssl x509 -in server.pem -out server.crt

PEM格式的证书与DER格式的证书的转换

openssl x509 -in cert.pem -inform PEM -out cert.der -outform DER

openssl x509 -in ca.cer -inform DER -out ca.pem -outform  PEM

几种典型的密码交换信息文件格式:

DER-encoded certificate: .cer, .crt

PEM-encoded message: .pem

PKCS#12 Personal Information Exchange: .pfx, .p12

PKCS#10 Certification Request: .p10

PKCS#7 cert request response: .p7r

PKCS#7 binary message: .p7b

.cer/.crt是用于存放证书,它是2进制形式存放的,不含私钥。

.pem跟crt/cer的区别是它以Ascii来表示。

pfx/p12用于存放个人证书/私钥,他通常包含保护密码,2进制方式

p10是证书请求

p7r是CA对证书请求的回复,只用于导入

p7b以树状展示证书链(certificate chain),同时也支持单个证书,不含私钥

算法

base64不是加密算法,但也是SSL经常使用的一种算法,它是编码方式,用来把asc码和二进制码转来转去的。

openssl x509部分命令

打印出证书的内容:

openssl x509 -in cert.pem -noout -text

打印出证书的系列号

openssl x509 -in cert.pem -noout -serial

打印出证书的拥有者名字

openssl x509 -in cert.pem -noout -subject

以RFC2253规定的格式打印出证书的拥有者名字

openssl x509 -in cert.pem -noout -subject -nameopt RFC2253

在支持UTF8的终端一行过打印出证书的拥有者名字

openssl x509 -in cert.pem -noout -subject -nameopt oneline -nameopt -escmsb

打印出证书的MD5特征参数

openssl x509 -in cert.pem -noout -fingerprint

打印出证书的SHA特征参数

openssl x509 -sha1 -in cert.pem -noout -fingerprint

把PEM格式的证书转化成DER格式

openssl x509 -in cert.pem -inform PEM -out cert.der -outform DER

把一个证书转化成CSR

openssl x509 -x509toreq -in cert.pem -out req.pem -signkey key.pem

给一个CSR进行处理,颁发字签名证书,增加CA扩展项

openssl x509 -req -in careq.pem -extfile openssl.cnf -extensions v3_ca -signkey key.pem -out cacert.pem

给一个CSR签名,增加用户证书扩展项

openssl x509 -req -in req.pem -extfile openssl.cnf -extensions v3_usr -CA cacert.pem -CAkey key.pem -CAcreateserial

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/191834.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • SQL分页查询_Sql根据某个字段分页

    SQL分页查询_Sql根据某个字段分页SQL分页查询:背景​ 在公司的系统中有一个平台是做配置管理的就是所谓的CRUD的平台,但是点击后进去到页面第一次看到的是一次查询的页面(点击页面自动的触发查询的功能)后面就可以你的CRUD的操作是给运营的同事来操作的,但是一般的是我们数据量比较的少的业务是之间查询出来所有的数据,直接返回给前端的让他自己做分页的,但是有一些数据量达到上万级别的时候,不能让他们乱搞了,…

    2022年4月19日
    138
  • 写给大忙人看的 – Java中从MinIO服务器中下载文件(3)[通俗易懂]

    写给大忙人看的 – Java中从MinIO服务器中下载文件(3)[通俗易懂]前面两章介绍了MinIO文件服务器的环境搭建,以及在Java中上传文件至MinIO文件服务器中,现在,一起来看下如何从MinIO文件服务器中下载文件吧1、获取文件对象我们在MinIO工具类中,获取文件对象的方法,即获取文件的输入流对象/***获取文件**@parambucketNamebucket名称*@paramobjectName文件名称*@return二进制流*/@SneakyThrowspublicInputStreamge

    2022年7月12日
    273
  • 处理线上字典插入nil值引起的崩溃

    处理线上字典插入nil值引起的崩溃

    2022年4月2日
    31
  • linux单引号双引号反引号_unix和linux的区别

    linux单引号双引号反引号_unix和linux的区别特殊的赋值Shell中可以将数字或字符直接赋予变量,也可以将Linux命令的执行结果赋予变量,如下:(1)$count=9#将数字赋予变量count(2)$name=”ming”#将字符赋予变量name(3)$listc=`ls-la`#将Linux命令赋予listc,listc的值就是该命令的执行结果反引号的作用反引号的作用就是将反引号内的Lin…

    2025年7月27日
    3
  • 从零开始学android<android开发环境的搭建.一.>[通俗易懂]

    从零开始学android<android开发环境的搭建.一.>[通俗易懂]我是一名无名学校的和计算机专业有一点关系的大学僧,当然还是比较喜欢计算机   游戏的……平时喜欢编程,喜欢把自己的思路和想法变为现实,爱琢磨,就这样开始学习Java了,然后就不知道怎么地开始看android这块了,当然我也是刚刚开始学习,我会在这里和大家分享我的学习经验和问题。…………………………………………………一点也不华丽得分割线…………………………………………………

    2022年6月21日
    22
  • Centos7配置IP地址和DNS

    Centos7配置IP地址和DNS1.配置IP地址终端上输入ifconfig,找出网卡名称进入配置目录,找出对应网卡配置文件cd/etc/sysconfig/network-scripts/ls编辑配置文件vimifcfg-ens33修改成如下信息TYPE=EthernetPROXY_METHOD=noneBROWSER_ONLY=noBOOTPROTO=noneDEFROU…

    2022年4月30日
    51

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号