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文件了…


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)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • 4k视频传输带宽_数字视频信号传输器

    4k视频传输带宽_数字视频信号传输器高清显示日渐普及,从720p,1080p,再到4K,8K分辨率,日常生活和商业应用中对视频清晰度要求越来越高,到目前4K基本普及。要实现4K视频的显示,大家可能会说,要买一台高清的投影仪,要一台高清的电视,要高清的显示屏,但是传输这块的媒介也不可忽视,作为连接视频源与显示设备的介质,它影响着信号是否稳定,画面是否流畅,视频是否清晰等多方面问题。下面我们来看看市面上主要的几种高清视频传输方案以及…

    2022年9月28日
  • navicat15.0激活码【2021最新】「建议收藏」

    (navicat15.0激活码)2021最新分享一个能用的的激活码出来,希望能帮到需要激活的朋友。目前这个是能用的,但是用的人多了之后也会失效,会不定时更新的,大家持续关注此网站~IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html…

    2022年3月26日
  • java创建线程池的四种方式_线程池对象的创建方式

    java创建线程池的四种方式_线程池对象的创建方式Java通过Executors提供四种线程池,分别为:newCachedThreadPool创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。newFixedThreadPool创建一个定长线程池,可控制线程最大并发数,超出的线程会在队列中等待。newScheduledThreadPool创建一个定长线程池,支持定时及周期性任务执行。newSingl…

    2022年9月27日
  • 【redis】一致性哈希算法

    【redis】一致性哈希算法前言这周复习redis,被集群和分布式搞得头大,也接触到一致性哈希算法,因此博主进行了一定得学习,故,写下这篇文章。一、普通哈希算法普通得哈希算法是对服务器得数量进行一定得取模预算得出,常见得公式如下:index=hash(key)%NN就是服务器得数量。我们可以想象到,如果服务器数量改变,那么index也会进行改变。例如:一台服务器宕机,服务里器的数据暂时丢失(系统会进行一定的备份,用户发送的请求经过哈希运算后,因为N的改变,会访问其他的服务器,但是该台服务器还没有拷贝过来宕机的数

    2022年7月27日
  • 目录爆破工具_dir是什么意思中文

    目录爆破工具_dir是什么意思中文在github中下下来网址:https://github.com/maurosoria/dirsearch下载下来我是用的kail所以我把它也放在kail里面了dirsearch需要python3,kail中是自带的进入dirsearch目录后执行./dirsearch.py-u10.0.3.45-ephp-u指定url-…

    2022年10月5日
  • Js生成二维码_js在线生成二维码

    Js生成二维码_js在线生成二维码1引入jsjquery.jqprint-0.3.jsjquery.qrcode.min.jsjquery-migrate-1.4.1.js2html元素:二维码生成在img的div中,新增img标签,并设置为display:none3生成二维码$(“#ewm”).qrcode(“http://127.0.0.1:8080/pages/check/infos.h…

    2022年10月17日

发表回复

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

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