当前位置: 首页 > news >正文

【全】OpenSSL创建生成CA证书、服务器、客户端证书及密钥说明

本文章对应的文档:使用OpenSSL创建生成CA证书服务器客户端证书及密钥资源-CSDN文库

https://download.csdn.net/download/weixin_41885845/88746920

对于SSL单向认证

服务器需要CA证书、server证书、server私钥,客户端需要CA证。

对于SSL双向认证

服务器需要CA证书、server证书、server私钥,客户端需要CA证书,client证书、client私钥。

 

生成CA证书

私钥生成指令: openssl genrsa

该命令是会用来生成 RSA 私有秘钥,不会生成公钥,因为公钥提取自私钥。

openssl  genrsa [-out filename] [-passout arg] [-f4] [-3] [-rand file(s)] [-engine id] [numbits] [-des] [-des3] [-idea]

-des            encrypt the generated key with DES in cbc mode

 -des3           encrypt the generated key with DES in ede cbc mode (168 bit key)

 -idea           encrypt the generated key with IDEA in cbc mode

 -seed

                 encrypt PEM output with cbc seed

 -aes128, -aes192, -aes256

                 encrypt PEM output with cbc aes

 -camellia128, -camellia192, -camellia256

                 encrypt PEM output with cbc camellia

 -out file       output the key to 'file

 -passout arg    output file pass phrase source

 -f4             use F4 (0x10001) for the E value

 -3              use 3 for the E value

 -engine e       use engine e, possibly a hardware device.

 -rand file:file:...

                 load the file (or the files in the directory) into

                 the random number generator

-des             使用des cbc模式对私钥文件进行加密。

-des3            使用des3 cbc模式对私钥文件进行加密。

-idea            使用idea cbc模式对私钥文件进行加密。

-aes128, -aes192, -aes256               使用aes cbc模式对私钥文件进行加密。

-out file        指定输出私钥文件名。

-f4                        指定F4做为E值,默认。

-3                        指定3做为E值。

-seed arg             指定cbc的随机种子。

-rand file:file 指定随机数种子文件。

———————————————————————————————————————

-out filename :将生成的私钥保存至filename文件,若未指定输出文件,则为标准输出。

                                    

-numbits :指定要生成的私钥的长度(单位 bit),默认为1024。该项必须为命令行的最后一项参数。

-des|-des3|-idea:指定加密私钥文件用的算法,这样每次使用私钥文件都将输入密码,太麻烦所以很少使用。

-passout args :加密私钥文件时,传递密码的格式,如果要加密私钥文件时单未指定该项,则提示输入密码。传递密码的args的格式见openssl密码格式。

测试

1、 openssl genrsa -seed -out rs_pri.pem 512

 

2、 openssl genrsa -aes256 –out rs_pri.key 512

 

3、 openssl genrsa -des3 -out test.key  -rand hello.txt 512

 

4 、openssl genrsa -des -passout pass:"123456" -out prikey.pem 1024

请求CA证书(先创建CA证书私钥)

C-----国家(Country Name)

ST----省份(State or Province Name)

L----城市(Locality Name)

O----公司(Organization Name)

OU----部门(Organizational Unit Name)

CN----产品名(Common Name)

emailAddress----邮箱(Email Address)

req指令

主要用于创建证书请求文件;

openssl req [options] <infile> outfile

-inform arg              指定输入文件格式,可以为DER或PEM,默认为PEM。

-outform arg              指定输出文件格式,可以为DER或PEM,默认为PEM。

-in arg                     指定输入文件。

-out arg                      指定输出文件。

-new                          创建新的证书请求文件。

-key file                   指定创建证书请求的私钥文件。

-keyform arg              指定创建证书请求的私钥文件的格式,可以为DER或PEM,默认为PEM。

-passin arg              指定私钥文件的口令保护来源。

-verify                      校验证书请求文件的主体签名是否有效。

-noout                        不打印证书请求信息。

-text                           文本打印证书请求文件。

-modulus                    输出证书请求的模数信息。

-subject                      输出证书请求主体信息。

-subj arg                     设置或修改证书请求的主体信息。

-multivalue-rdn   设置或修改证书请求的主体信息时,允许多RDN格式。

-utf8                           输入字符为utf8编码,默认输入为ASCII编码。

-[digest]                     指定创建证书请求的摘要算法。

-pubkey                      提取证书请求文件中的公钥。

x509指令

主要用于创建、修改x509证书。

openssl x509 [options] <infile >outfile

-inform arg                 指定输入文件格式,可以为DER或PEM,默认为PEM。

-outform arg              指定输出文件格式,可以为DER或PEM,默认为PEM。

-keyform arg              指定私钥文件格式,可以为DER或PEM,默认为PEM。

-CAform arg               指定CA文件格式,可以为DER或PEM,默认为PEM。

<

相关文章:

  • 蓝桥杯备赛 | 洛谷做题打卡day2
  • Protobuf小记(万字)
  • 基于FPGAWS2812B的贪吃蛇方案设计(含源码)
  • pod 控制器
  • 移动安全-certutil
  • .net core IResultFilter 的 OnResultExecuted和OnResultExecuting的区别
  • 封装日期时间组件
  • 边缘计算的挑战和机遇(结合RDH-EI)
  • 12GoF之代理模式
  • Hutool sqlserver 数据库简单操作-Db
  • Linux 【C编程】IO进阶— 阻塞IO、非阻塞IO、 多路复用IO、 异步IO
  • 阶段七第二章 性能测试工具
  • word写标书的疑难杂症总结
  • leetcode82. 删除排序链表中的重复元素 II
  • 网络安全产品之认识WEB应用防火墙
  • 2019年如何成为全栈工程师?
  • Flannel解读
  • flask接收请求并推入栈
  • HTML中设置input等文本框为不可操作
  • 每天10道Java面试题,跟我走,offer有!
  • 前端技术周刊 2018-12-10:前端自动化测试
  • 听说你叫Java(二)–Servlet请求
  • 学习笔记TF060:图像语音结合,看图说话
  • 中国人寿如何基于容器搭建金融PaaS云平台
  • ​Spring Boot 分片上传文件
  • ​软考-高级-系统架构设计师教程(清华第2版)【第1章-绪论-思维导图】​
  • ​学习一下,什么是预包装食品?​
  • # 手柄编程_北通阿修罗3动手评:一款兼具功能、操控性的电竞手柄
  • ### Error querying database. Cause: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException
  • #gStore-weekly | gStore最新版本1.0之三角形计数函数的使用
  • #每日一题合集#牛客JZ23-JZ33
  • #在线报价接单​再坚持一下 明天是真的周六.出现货 实单来谈
  • $.ajax,axios,fetch三种ajax请求的区别
  • (1) caustics\
  • (1)常见O(n^2)排序算法解析
  • (2015)JS ES6 必知的十个 特性
  • (Arcgis)Python编程批量将HDF5文件转换为TIFF格式并应用地理转换和投影信息
  • (arch)linux 转换文件编码格式
  • (C#)Windows Shell 外壳编程系列4 - 上下文菜单(iContextMenu)(二)嵌入菜单和执行命令...
  • (ros//EnvironmentVariables)ros环境变量
  • (八)Spring源码解析:Spring MVC
  • (五)大数据实战——使用模板虚拟机实现hadoop集群虚拟机克隆及网络相关配置
  • ***微信公众号支付+微信H5支付+微信扫码支付+小程序支付+APP微信支付解决方案总结...
  • .net on S60 ---- Net60 1.1发布 支持VS2008以及新的特性
  • .net反编译的九款神器
  • .NET建议使用的大小写命名原则
  • /run/containerd/containerd.sock connect: connection refused
  • /ThinkPHP/Library/Think/Storage/Driver/File.class.php  LINE: 48
  • /usr/lib/mysql/plugin权限_给数据库增加密码策略遇到的权限问题
  • @data注解_SpringBoot 使用WebSocket打造在线聊天室(基于注解)
  • @FeignClient注解,fallback和fallbackFactory
  • @javax.ws.rs Webservice注解
  • [ 转载 ] SharePoint 资料
  • [【JSON2WEB】 13 基于REST2SQL 和 Amis 的 SQL 查询分析器
  • [Angular 基础] - 自定义指令,深入学习 directive