OpenSSL生成证书详解 如何使用OpenSSL生成自签证书 转载
原文:http://my.oschina.net/fajar/blog/425478
使用OpenSSL生成自签证书(亲测)
一,前言
读过我博客的小伙伴儿都知道,我一般在前言里面会提到为什么写这篇博客,这次的理由是:公司让我写个证书与商业合作伙伴在交换数据时进行签名和加密。
需求:
生成一对 RSA 钥匙,公钥采用 X。509 进行加密,私钥采用 PKCS8 进行加密, 字节长度为 1024
二,准备工作
1,下载OpenSSL在window 7下的安装包,可以从我网盘下载 http://pan.baidu.com/s/1jGJ3EtC
2,下载OpenSSL执行命令时需要提供的配置文件,参考本人网盘 http://pan.baidu.com/s/1jG06KFs
三,实战
1,执行OpenSSL的安装程序,例如我安装在 D:\MySoftware\OpenSSL-Win64
2,设置环境变量
OPENSSL_HOME = D:\MySoftware\OpenSSL-Win64 (你需要把地址替换你安装文件夹)
Path = Path + ; + OPENSSL_HOME (在配环境变量时一定要注意 ;)
3,创建一个你将用来创建证书的目录,例如我的是 F:\Test
4,文件和目录补齐(如果不补齐在自签证书时会报找不到文件的错)
在你创建证书的目录下,手动创建如下文件(文件作用附加在文件名后面)
index.txt OpenSSL在创建自签证书时会向该文件里写下索引
database.txt OpenSSL会模拟数据库将一些敏感信息写在该文件里
serial.txt 创建该文件后,请编辑在第一行写下 01
注意: 这里提到的所有文件必须补齐,并且文件名不得更改 !
5,开始敲命令吧
a,生成 CA 根证书,做签名使用的,因为我们是自己给自己签名嘛!
openssl genrsa -des3 -out root.key 1024
这个时候会让你输入两次根证书的密码,根证书嘛肯定是要保密的
b,生成 CA 的自签证书
openssl req -new -x509 -key root.key -out root.crt -days 365 -config openssl.conf
这个时候会让你输入一些组织信息,请记住,你现在输入的信息和你接下来要签名的信息一致
c,同样的道理生成服务器端私钥
openssl genrsa -out server.key 1024
d,生成服务器端签名请求文件
openssl req -new -key server.key -out server.csr -config openssl.conf
同样会让你输入一个组织信息,记得跟根证书一致
e,利用 CA 进行签名证书
openssl ca -in server.csr -out server.crt -keyfile root.key -cert root.crt -days 365 -config openssl.conf
到底我们的证书生成完成!但是有些格式不是我们需要的,请看接下俩格式转换
6,常用格式转换
a,得到 pfx 格式的私钥
openssl pkck12 -export -out server.pfx -inkey server.key -in server.crt
b,从pfx文件中分离出 cer 格式的公钥
openssl x509 -inform pem -in server.crt -outform der -out server_public.cer
三,总结
留下文章让自己有个参考,欢迎大家一起交流! QQ : 690649714
OpenSSL生成证书详解 如何使用OpenSSL生成自签证书 转载的更多相关文章
- (转)openssl 命令: openssl req 命令详解
openssl req命令主要的功能有,生成证书请求文件, 查看验证证书请求文件,还有就是生成自签名证书.本文就主要记录一下open ...
- iOS-申请测试证书详解(多图原创)
申请测试证书详解 前言 App开发和发布过程中证书基础知识:1. Certification(证书)证书是对电脑开发资格的认证,每个开发者帐号有一套,分为两种:1) Developer Certifi ...
- iOS开发者证书-详解
iOS开发者证书-详解/生成/使用 本文假设你已经有一些基本的Xcode开发经验, 并注册了iOS开发者账号. 相关基础 加密算法 现代密码学中, 主要有两种加密算法: 对称密钥加密 和 公开密钥加密 ...
- Python中random模块生成随机数详解
Python中random模块生成随机数详解 本文给大家汇总了一下在Python中random模块中最常用的生成随机数的方法,有需要的小伙伴可以参考下 Python中的random模块用于生成随机数. ...
- nginx反向代理cas-server之2:生成证书,centOS下使用openssl生成CA证书(根证书、server证书、client证书)
前些天搭好了cas系统,这几天一致再搞nginx和cas的反向代理,一直不成功,但是走http还是测试通过的,最终确定是ssl认证证书这一块的问题,原本我在cas服务端里的tomcat已经配置了证书, ...
- 【转】linux /centos 中OpenSSL升级方法详解
相关软件下载地址 Apache:http://httpd.apache.org/ Nginx:http://nginx.org/en/download.html OpenSSL:http://www. ...
- iOS开发者证书-详解/生成/使用
本文假设你已经有一些基本的Xcode开发经验, 并注册了iOS开发者账号. 相关基础 加密算法 现代密码学中, 主要有两种加密算法: 对称密钥加密 和 公开密钥加密. 对称密钥加密 对称密钥加密(Sy ...
- iOS证书详解--再转
一.成员介绍1. Certification(证书)证书是对电脑开发资格的认证,每个开发者帐号有一套,分为两种:1) Developer Certification(开发证书)安装在电脑上 ...
- iOS 证书详解
引言 关于开发证书配置(Certificates & Identifiers & Provisioning Profiles),相信做iOS开发的同学没少被折腾.对于一个iOS开发小白 ...
随机推荐
- 鹦鹉学舌1——C语言初学者百题大战之三
#include<stdio.h> int main() { int a; scanf("%d",&a); printf("%d",a-a+ ...
- 2016. 4.10 NOI codevs 动态规划练习
1.codevs1040 统计单词个数 1040 统计单词个数 2001年NOIP全国联赛提高组 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题目描述 De ...
- iOS中深拷贝、浅拷贝和retain的区别
浅拷贝:浅拷贝是对object对象的指针拷贝,让指针指向同一块内存地址,“对象永远只有一个",浅拷贝使对象的引用计数器+1.代码如下: 可以看出不可变字符串的指针指向了同一地址,并没有重新开 ...
- 微信小程序,工具未检测合法域名,400 (Bad Request)错误
1.工具未检测合法域名 这个我就不多说了,如果你新建的时候没有填写AppID的话这个我就不太清楚了 如果新建项目的时候填写了AppID的话,出现这种错误,那你应该去小程序后台 设置->开发者设置 ...
- Unity3D 手游开发中所有特殊的文件夹
这里列举出手游开发中用到了所有特殊文件夹. 1.Editor Editor文件夹可以在根目录下,也可以在子目录里,只要名子叫Editor就可以.比如目录:/xxx/xxx/Editor 和 /Edi ...
- 通过HttpServletRequest转换获得json对象
如何把前端传过来的Json对象解析出来?在java web应用中,我们如何获取post请求body中的内容?通常利用request获取参数可以直接通过req.getParameter(name)的方式 ...
- javascript正则中ASCII与unicode
正则表达式中允许直接利用ASCII和Unicode编码来查找我们相应的字符串. ASCII: 下面是检索ASCII编码在x41-x7a范围内的所有匹配的字符串.(x41,x7a为十六进制) var s ...
- Windows DiskPart工具使用
启动工具 diskpart 列出磁盘列表 list disk 选择磁盘 select disk 1 转换为GPT分区 convert gpt 列出分区 list partition 清除所有分区 cl ...
- vue项目配置使用flow类型检查
你是否经常在debug那些简单可避免的bug?可能你给函数传参的时候搞错了参数的顺序,或者本来应该传个Number类型的参数,你传了一个String类型?JavaScript的弱类型是这一类bug的罪 ...
- Java实现文件MD5加密
代码实现: import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.s ...