用openssl签发证书
导言:
有时候,使用SSL协议是自己内部服务器使用的,这时可以不必去找第三方权威的CA机构做证书,可以做自签证书
使用openssl签发证书分为四个步骤:生成密钥对、生成证书请求、创建一个root CA、签发证书
一、生成密钥对
1、生成rsa密钥
(1)生成私钥
使用命令openssl genrsa:
openssl genrsa -out private.key 2048
如果想为这个key值加密,可使用命令:
openssl genrsa -aes128 -out private.key 2048
或者
openssl genrsa -aes256 -passout pass:111111 -out private.key 2048
(2)生成公钥
使用命令:
openssl rsa -in private.key -pubout -out public.key
如果私钥加密了,需要提供密码,或者直接在命令里提供密码:
openssl rsa -in private.key -passin pass:111111 -pubout -out public.key
2、生成ecdsa密钥
(1)生成私钥
使用命令openssl ecparam:
openssl ecparam -name secp384r1 -genkey -out private-ecc.key
(2)生成公钥
使用命令:
openssl pkey -in private-ecc.key -pubout -out public-ecc.key
二、生成证书请求
1、生成RSA证书请求
使用命令:
openssl req -new -key private.key -out private.csr
2、ECDSA证书请求:
使用命令:
openssl req -new -key private-ecc.key -out private-ecc.csr
三、创建一个root CA
1、创建openssl.cnf在使用default-ca时需要使用的SSL的工作目录(第一次必须要设置)
(1)输入命令:openssl version -a,查看openssl的配置文件
(2)找到 OPENSSLDIR: "/etc/pki/tls" 的配置文件openssl.cnf,根据配置文件下的[ CA_default ]节点默认值,创建对应文件夹和文件,该路径可做修改,一般改为/etc/pki/CA
然后创建以下文件夹和文件:
mkdir certs
mkdir newcerts
mkdir private
mkdir crl
touch index.txt
echo 01>serial
说明:
certs:存放已颁发的证书
newcerts:存放CA指令生成的新证书
private:存放私钥
crl:存放已吊销的整数
index.txt:penSSL定义的已签发证书的文本数据库文件,这个文件通常在初始化的时候是空的
serial:证书签发时使用的序列号参考文件,该文件的序列号是以16进制格式进行存放的,该文件必须提供并且包含一个有效的序列号
注意:执行 echo 01>serial 命令之后注意看下serial文件里面是否有 01 这个内容,如果没有,则需要手动使用 vi 命令写入
2、生成CA根证书(root ca证书)
方案一:生成CA私钥(.key)-->生成CA证书请求(.csr)-->自签名得到根证书(.crt)(CA给自已颁发的证书)
方案二:生成CA私钥(.key)-->执行以下命令:
openssl req -new -x509 -days 3650 -key ca.key -out ca.crt
四、签发证书
签发证书使用openssl ca命令:
openssl ca -in private.csr -out private.crt -cert ca.crt -keyfile ca.key -days 3650
其他
(1)如果签发证书时,出现countryName、stateOrProvinceName、organizationName等不匹配的信息,可以对配置文件openssl.cnf进行修改
可以将三个参数的 match 改为 optional
(2)转换命令:
私钥转非加密:
openssl rsa -in private.key -passin pass:111111 -out private_noaes.key
私钥转加密:
openssl rsa -in private.key -aes256 -passout pass:111111 -out private_aes.key
私钥PEM转DER:(-inform和-outform 参数制定输入输出格式,由der转pem格式同理)
openssl rsa -in private.key -outform der-out private.der
查看私钥明细:(使用-pubin参数可查看公钥明细)
openssl rsa -in private.key -noout -text
查看证书细节:
openssl x509 -in private.crt -noout -text
转换证书编码格式:(-inform和-outform 参数制定输入输出格式,由pem转der格式同理)
openssl x509 -in private.cer -inform DER -outform PEM -out private.pem
用openssl签发证书相关推荐
- OpenSSL签发证书时编码UTF8STRING PRINTABLESTRING不匹配
问题如下: Check that the request matches the signature Signature ok The countryName field is different b ...
- 使用OpenSSL签发证书
安装OpenSSL OpenSSL下载地址:http://slproweb.com/products/Win32OpenSSL.html 安装完以后一路点下去即可. 配置OpenSSL 配置Path ...
- openssl 自建CA签发证书 网站https的ssl通信
<<COMMENT X509 文件扩展名 首先我们要理解文件的扩展名代表什么.DER.PEM.CRT和CER这些扩展名经常令人困惑. 很多人错误地认为这些扩展名可以互相代替.尽管的确有时候 ...
- openssl创建CA并签发证书
一.创建私有CA根证书 1.创建CA目录 root@DESKTOP-JP3S3AN:/home/wsl/openssl_pro# mkdir -pv /etc/pki/CA/{private,cert ...
- 加密解密概述及openssl应用及其创建CA和签发证书的实现
数据非常重要,这是大家的共识,为了保证数据的安全,就会涉及到加密及其解密,本文主要介绍加密 解密相关概念及其在Linux平台下加密解密的具体实现openssl基础,及openssl创建CA和签发证书: ...
- OpenSSL生成root CA及签发证书
一.openssl 简介 openssl 是目前最流行的 SSL 密码库工具,其提供了一个通用.健壮.功能完备的工具套件,用以支持SSL/TLS 协议的实现.官网:https://www.openss ...
- 使用 openssl 创建自签发证书,含 IP证书 及 泛域名证书
web里面需要使用ssl才能使用,所以需要使用域名证书: 1. 创建根证书 创建秘钥 openssl genrsa -out LocalRootCA.key 2048 生成证书并自签名,nodes是不 ...
- 使用OpenSSL生成/签发证书的原理、流程与示例
文章目录 1 生成证书的步骤与原理 2 标准的CA签发流程 2.1 创建私钥(.key) 2.2 基于私钥创建证书签名请求(.csr) 2.3 (可选)直接同时生成私钥和证书签名请求 2.4 将证书申 ...
- 使用Openssl签发SSL证书
本文主要记述在Linux系统上使用Openssl创建SSL证书的流程,作为个人学习笔记.自签名证书分为自签名私有证书和自签名CA证书两种.自签名私有证书无法被吊销,自签名CA证书可以被吊销. 什么是o ...
最新文章
- angular ng-container
- linux kernel的问与答
- fiddler自动保存mysql_Fiddler模拟自动响应数据
- world wide patent search website
- Apple 预计于内华达州雷诺市再盖一个数据中心
- 深入学习c++--智能指针(二) weak_ptr(打破shared_ptr循环引用)
- WIN10 WIN11的vs2019与fortran编译环境的安装
- Windows10环境中下载DOSBox并进行debug配置
- 微信朋友圈评论功能设计实现
- c++ ActiveX基础1:使用VS2010创建MFC ActiveX工程项目
- TeamTalk各个服务的IP配置方案
- LaTeX新人教程,30分钟从完全陌生到基本入门
- 360算法工程师初面总结
- 软件公司团队管理方法思考
- 币圈进化,IFO、IHO玩法更高级,李笑来Candy“糖果”野望未来
- 汽车加油问题 贪心算法 Java(详细注释)
- java 二维码原理以及用java实现的二维码的生成、解码
- firefox火狐插件(56旧版本适用)
- 2021中国企业常用「应用商店分发」产品矩阵报告
- 经典培训小游戏(一)