原文: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生成自签证书 转载的更多相关文章

  1. (转)openssl 命令: openssl req 命令详解

                                      openssl req命令主要的功能有,生成证书请求文件, 查看验证证书请求文件,还有就是生成自签名证书.本文就主要记录一下open ...

  2. iOS-申请测试证书详解(多图原创)

    申请测试证书详解 前言 App开发和发布过程中证书基础知识:1. Certification(证书)证书是对电脑开发资格的认证,每个开发者帐号有一套,分为两种:1) Developer Certifi ...

  3. iOS开发者证书-详解

    iOS开发者证书-详解/生成/使用 本文假设你已经有一些基本的Xcode开发经验, 并注册了iOS开发者账号. 相关基础 加密算法 现代密码学中, 主要有两种加密算法: 对称密钥加密 和 公开密钥加密 ...

  4. Python中random模块生成随机数详解

    Python中random模块生成随机数详解 本文给大家汇总了一下在Python中random模块中最常用的生成随机数的方法,有需要的小伙伴可以参考下 Python中的random模块用于生成随机数. ...

  5. nginx反向代理cas-server之2:生成证书,centOS下使用openssl生成CA证书(根证书、server证书、client证书)

    前些天搭好了cas系统,这几天一致再搞nginx和cas的反向代理,一直不成功,但是走http还是测试通过的,最终确定是ssl认证证书这一块的问题,原本我在cas服务端里的tomcat已经配置了证书, ...

  6. 【转】linux /centos 中OpenSSL升级方法详解

    相关软件下载地址 Apache:http://httpd.apache.org/ Nginx:http://nginx.org/en/download.html OpenSSL:http://www. ...

  7. iOS开发者证书-详解/生成/使用

    本文假设你已经有一些基本的Xcode开发经验, 并注册了iOS开发者账号. 相关基础 加密算法 现代密码学中, 主要有两种加密算法: 对称密钥加密 和 公开密钥加密. 对称密钥加密 对称密钥加密(Sy ...

  8. iOS证书详解--再转

    一.成员介绍1.    Certification(证书)证书是对电脑开发资格的认证,每个开发者帐号有一套,分为两种:1)    Developer Certification(开发证书)安装在电脑上 ...

  9. iOS 证书详解

    引言 关于开发证书配置(Certificates & Identifiers & Provisioning Profiles),相信做iOS开发的同学没少被折腾.对于一个iOS开发小白 ...

随机推荐

  1. 打造百度网盘备份利器:自动备份Linux VPS文件和多线程下载百度网盘资源

    前一段时间国内的各大网盘百度云盘,金山快盘,360云盘,华为网盘为争夺用户上演空间容量博弈,网盘商们还固执地以为中国的网民都不懂网络技术,可以像某公司那样用一些数字的手段来忽悠用户,参与到网盘商的数字 ...

  2. 找回VisualStudio异常设置中丢失的“用户未处理的(User-unhandled)”列

    今天发现我的VisualStudio中的异常设置中"用户未处理的"列丢失了 虽然我很少设置这一项,但没了还是觉得怪怪的,网上搜了一下,在文章"USER-UNHANDLED ...

  3. 转载:通过扩大IE使用内存,解决skyline在IE下模型不能加载的方法

    转自:https://www.cnblogs.com/cannel/p/5261009.html 环境:skyline TerraExploere 6.6,win 10 sp1 64位,ie 11 情 ...

  4. Java 8:不要再用循环了 Stream替代for循环

    原文:http://www.importnew.com/14841.html 在这篇文章里,我们将会去了解传统循环的一些替代方案.在Java 8的新功能特性中,最棒的特性就是允许我们去表达我们想要完成 ...

  5. AppCan入门教程

    主干 主干可以认为是整个页面的整体框架布局 上图是截取与ZAKER(原生开发).正益无线(HTML5开发).ZAKER微博界面(原生开发)和HTML5中国(HTML5开发).参考上述界面我们看到大部分 ...

  6. Android开发高级进阶——多进程间通信

    一. 什么是多进程? 多进程就是多个进程的意思,那么什么是进程呢? 当一个应用在开始运行时,系统会为它创建一个进程,一个应用默认只有一个进程,这个进程(主进程)的名称就是应用的包名. 进程的特点: 进 ...

  7. Objective-C:KVO机制

    KVO:key value observer 键值对的观察者   功能:给对象属性添加观察者,用来时时监测对象属性值的改变,一旦属性值发生了改变,观察者就做出相应的反应,提醒用户.在应用中,针对MVC ...

  8. STL容器简介

    stl不是面向对象的编程,而是一种不同的编程模式————泛型编程 我们常用到的STL容器有vector.list.deque.map.multimap.set.multiset 顺序性容器:vecto ...

  9. python查看字节码

    查看字节码可以帮助我们更好的理解python的执行流程 查看字节码列表 import opcode for op in range(len(opcode.opname)): print('0x%.2X ...

  10. Java小案例(行星移动)

    Java小案例 行星移动:参考:三百集 使用软件:idea2017,java 1,图片集:这里  (idea图片源放在target目录下,才能访问到),建议从小往上看... 2,定义MyFrame p ...