用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

  • 4
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值