导言:

有时候,使用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签发证书相关推荐

  1. OpenSSL签发证书时编码UTF8STRING PRINTABLESTRING不匹配

    问题如下: Check that the request matches the signature Signature ok The countryName field is different b ...

  2. 使用OpenSSL签发证书

    安装OpenSSL OpenSSL下载地址:http://slproweb.com/products/Win32OpenSSL.html 安装完以后一路点下去即可. 配置OpenSSL 配置Path ...

  3. openssl 自建CA签发证书 网站https的ssl通信

    <<COMMENT X509 文件扩展名 首先我们要理解文件的扩展名代表什么.DER.PEM.CRT和CER这些扩展名经常令人困惑. 很多人错误地认为这些扩展名可以互相代替.尽管的确有时候 ...

  4. openssl创建CA并签发证书

    一.创建私有CA根证书 1.创建CA目录 root@DESKTOP-JP3S3AN:/home/wsl/openssl_pro# mkdir -pv /etc/pki/CA/{private,cert ...

  5. 加密解密概述及openssl应用及其创建CA和签发证书的实现

    数据非常重要,这是大家的共识,为了保证数据的安全,就会涉及到加密及其解密,本文主要介绍加密 解密相关概念及其在Linux平台下加密解密的具体实现openssl基础,及openssl创建CA和签发证书: ...

  6. OpenSSL生成root CA及签发证书

    一.openssl 简介 openssl 是目前最流行的 SSL 密码库工具,其提供了一个通用.健壮.功能完备的工具套件,用以支持SSL/TLS 协议的实现.官网:https://www.openss ...

  7. 使用 openssl 创建自签发证书,含 IP证书 及 泛域名证书

    web里面需要使用ssl才能使用,所以需要使用域名证书: 1. 创建根证书 创建秘钥 openssl genrsa -out LocalRootCA.key 2048 生成证书并自签名,nodes是不 ...

  8. 使用OpenSSL生成/签发证书的原理、流程与示例

    文章目录 1 生成证书的步骤与原理 2 标准的CA签发流程 2.1 创建私钥(.key) 2.2 基于私钥创建证书签名请求(.csr) 2.3 (可选)直接同时生成私钥和证书签名请求 2.4 将证书申 ...

  9. 使用Openssl签发SSL证书

    本文主要记述在Linux系统上使用Openssl创建SSL证书的流程,作为个人学习笔记.自签名证书分为自签名私有证书和自签名CA证书两种.自签名私有证书无法被吊销,自签名CA证书可以被吊销. 什么是o ...

最新文章

  1. angular ng-container
  2. linux kernel的问与答
  3. fiddler自动保存mysql_Fiddler模拟自动响应数据
  4. world wide patent search website
  5. Apple 预计于内华达州雷诺市再盖一个数据中心
  6. 深入学习c++--智能指针(二) weak_ptr(打破shared_ptr循环引用)
  7. WIN10 WIN11的vs2019与fortran编译环境的安装
  8. Windows10环境中下载DOSBox并进行debug配置
  9. 微信朋友圈评论功能设计实现
  10. c++ ActiveX基础1:使用VS2010创建MFC ActiveX工程项目
  11. TeamTalk各个服务的IP配置方案
  12. LaTeX新人教程,30分钟从完全陌生到基本入门
  13. 360算法工程师初面总结
  14. 软件公司团队管理方法思考
  15. 币圈进化,IFO、IHO玩法更高级,李笑来Candy“糖果”野望未来
  16. 汽车加油问题 贪心算法 Java(详细注释)
  17. java 二维码原理以及用java实现的二维码的生成、解码
  18. firefox火狐插件(56旧版本适用)
  19. 2021中国企业常用「应用商店分发」产品矩阵报告
  20. 经典培训小游戏(一)

热门文章

  1. eclipse介绍,环境配置,mysql安装
  2. 视频教程-MMOARPG地下守护神_单机版实战视频课程(上部) -Unity3D
  3. SketchUp的自动化实战 (三)随机贴图
  4. 【Arduino】编码器OMRON E6B2-CWZ6C
  5. 问道手游安卓服务器维护公告,问道手游安卓3月16日停服维护公告
  6. DX11学习的一些资料
  7. 5.19 英语单词小计
  8. 易信公众平台的微创新:活动消息
  9. C++复习 14 重载操作符与转换
  10. 第三方支付平台--网银在线