目录
一、前言
二、openssl介绍
三、openssl的常用用法
(一)单向加密
(二)生成随机数
(三)生成公钥,私钥
1.生成私钥
2.提取公钥
四、搭建CA
(一)创建根CA私钥:
(二)生成自签名证书
(三)创建数据库以及新颁发证书数字
(四)设置证书的起始编号
(五)创建文件夹储存用户信息
五、颁发证书
(一)生成服务器自己的私钥
(二)为服务器申请证书
(三)CA签署服务器的证书
(四)验证证书是否有效
六、吊销证书
文章来源地址https://www.toymoban.com/news/detail-460440.html
一、前言
数字证书与CA的介绍:
证书是建立公共密钥和某个实体之间联系的数字化的文件。它包含的内容有:版本信息(X.509也是有三个版本的)、系列号、证书接受者名称、颁发者名称、证书有效期、公共密钥、一大堆的可选的其他信息、CA的数字签名。证书由CA颁发,由CA决定该证书的有效期,由该CA签名。每个证书都有唯一的系列号。证书的系列号和证书颁发者来决定某证书的唯一身份。
CA是第三方机构,被你信任,由它保证证书的确发给了应该得到该证书的人。CA自己有一个庞大的public key数据库,用来颁发给不同的实体。CA也是一个实体,它也有自己的公共密钥和私有密钥。
openssl可以生成CA的证书文件,私钥,可实现加解密以及数字签名的功能。
二、openssl介绍
openssl是一款开放源代码软件包,通过命令行形式执行,包含了ssl协议库,应用程序以及密码算法库,集成了安全套接字层密码库,囊括主要的密码算法、常用密钥、证书封装管理功能及实现ssl协议。
三、openssl的常用用法
(一)单向加密
openssl dgst [-md5|-md4|-md2|-sha1|-sha|-mdc2|-ripemd160|-dss1] [-c] [-d] [-hex] [-binary] [-out filename]
[-md5|-md4|-md2|-sha1|-sha|-mdc2|-ripemd160|-dss1] : 指可以用来加密的内容
-out filename指可以把加密内容保存到特定文件中
(二)生成随机数
openssl rand -base64|-hex NUM
可选base64或hex(十六进制)
NUM:生成随机数的字节长度
(三)生成公钥,私钥
1.生成私钥
需要使用genrsa命令生成私钥,然后从生成的私钥中提取公钥
openssl genrsa [-out filename] [-des | -des3 | -idea] [numbits]
-out filename : 将生成的私钥保存至特定文件中
-des | -des3 | -idea : 可选用的密码学算法
numbits :生成的私钥长度,单位是字节,一般是2048
2.提取公钥
openssl rsa [-in filename] [-out filename] [-pubout]
-in filename : 公钥对应的私钥存储文件
-out filename : 提取出公钥后储存的文件
-pubout :公钥
四、搭建CA
(一)创建根CA私钥:
openssl genrsa -out /etc/pki/CA/private/cakey.pem 2048
(二)生成自签名证书
openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -out /etc/pki/CA/cacert.crt -days 3650
(三)创建数据库以及新颁发证书数字
touch /etc/pki/CA/index.txt
touch /etc/pki/CA/serial
(四)设置证书的起始编号
echo 01 > /etc/pki/CA/serial
(五)创建文件夹储存用户信息
cd /etc/pki/CA
mkdir data
五、颁发证书
(一)生成服务器自己的私钥
openssl genrsa -out /etc/pki/CA/data/server.key 2048
(二)为服务器申请证书
openssl req -new -key /etc/pki/CA/data/server.key -out /etc/pki/CA/certs/server.csr
注意:前四项填写必须和CA相同,且server' s hostname必须是申请服务器的ip地址或者域名
(三)CA签署服务器的证书
openssl ca -in /etc/pki/CA/certs/server.csr -cert /etc/pki/CA/cacert.crt -keyfile /etc/pki/CA/private/cakey.pem -out /etc/pki/CA/certs/server.crt -days 36500
(四)验证证书是否有效
openssl verify -verbose -CAfile /etc/pki/CA/cacert.crt /etc/pki/CA/certs/server.crt
显示ok的话就可以了
将得到的server.crt和server.key发给服务器,在其ssl配置文件中导入即可实现http到https的转换。如果需要浏览器通过https安全访问web服务的话,还需要在浏览器中导入CA的自签名证书
六、吊销证书
由于撤销证书的命令在openssl配置文件中指定了CA字签名证书的名称,所以在撤销证书前,需要先改一下CA自签名证书的后缀名:
mv /etc/pki/CA/cacert.crt /etc/pki/CA/cacert.pem
(一)查看证书serial信息
openssl x509 -in /etc/pki/CA/cacert.pem -noout -serial -subject
比对成功后,进行撤销
(二)吊销证书
openssl ca -revoke /etc/pki/CA/newcerts/01.pem
(三)查看证书状态
openssl ca -status 01
(四)定义证书撤销列表的起始编号
echo 01 > /etc/pki/CA/crlnumber
(五)更新证书撤销列表
openssl ca -gencrl -out /etc/pki/CA/crl.pem
(六)查看证书撤销列表
openssl crl -in /etc/pki/CA/crl.pem -noout -text
参考链接:
【CentOS 7+Apache】5分钟完成服务器搭建+全站HTTP转HTTPS_哔哩哔哩_bilibili
CentOS搭建基于Apache与OpenSSL自签名证书的HTTPS服务并解决客户端浏览器信任问题_aptx4869_li的博客-CSDN博客_centos httpd openssl
Centos7创建CA和申请证书 - mingzhang - 博客园 (cnblogs.com)文章来源:https://www.toymoban.com/news/detail-460440.html
到了这里,关于开源CA搭建-基于openssl实现数字证书的生成与分发的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!