经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 其他 » 网络安全 » 查看文章
基于OpenSSL的PKI的PKI数字证书系统实现
来源:cnblogs  作者:流星斩月  时间:2021/2/18 15:30:58  对本文有异议

  本篇主要介绍了基于OpenSSL的PKI的PKI数字证书系统实现,利用OpenSSL建立一个CA中心的详细解决方案和建立的具体步骤。

1、PKI数字证书系统设计

  PKI数字证书系统主要包括证书颁发机构CA、注册机构RA和公共查询数据库三个部分,基本框架如下:

 

2、OpenSSL对传输文件公钥加密私钥解密

  OpenSSL RSA私钥生成:

  $ openssl genrsa -out private.pem 2048

  OpenSSL RSA公钥生成:

  $ openssl rsa -in ./private.pem -pubout -out public.pem

  创建file.txt为例,来加密file.txt内容 用公钥进行加密:

  $openssl rsautl -encrypt -in file.txt -inkey public.pem -pubin -out message.en

  用私钥进行解密:

  $openssl rsautl -decrypt -in message.en -inkey private.pem -out message.txt

  读取message.txt内容与file.txt进行对照即可验证

3、OpenSSL对传输文件私钥签名公钥验证

  OpenSSL RSA私钥生成:$ openssl genrsa -out private.pem 2048

  OpenSSL RSA公钥生成:$ openssl rsa -in ./private.pem -pubout -out public.pem

  以file.txt为例,实现对文件私钥签名公钥验证

  用私钥签名:

  $openssl dgst -sign private.pem -md5 -out message.sign file.txt

  用公钥验签:

  $openssl dgst -verify public.pem -md5 -signature message.sign file.txt

  终端显示Verified OK即验签成功

4、CA实现过程-总述

  OpenSSL实现了安全套接层协议(SSL V2/V3)和传输层安全协议(TLS V1),并带有一个功能完整的、具有通用性的加密技术库。OpenSSL工具包分为三个部分:SSL函数库、Crypto函数库和命令行工具。通过使用OpenSSL构建CA认证中心。

5、CA实现过程-环境搭建

  Windows平台下安装OpenSSL安装包开源平台: http://slproweb.com/products/Win32OpenSSL.html 可以选择Win64 OpenSSL v1.1.1g Light EXE/MSI版本,对于EXE版本,需要在电脑端配置后环境变量等,等安装配置好之后,在cmd终端输入:

  $ openssl version 终端显示如OpenSSL 1.1.1g 等就已经安装完成

6CA实现过程-生成数字证书-生成CA私钥以及自签名根证书

  实现自建立CA,并用自建的CA对产生的数字证书进行签名。生成CA私钥以及自签名根证书具体过程如下:

  (1).生成CA私钥ca-key.pem; 打开交互模式$ openssl 生成CA私钥:

  OpenSSL> genrsa -out ca-key.pem 1024

  (2).生成待签名证书ca-req.csr; 创建证书请求:

  OpenSSL> req -new -out ca-req.csr -key ca-key.pem

  (3).用CA私钥进行自签名,产生x509证书文件ca-cert.pem; 自签署证书:

  OpenSSL> x509 -req -in ca-req.csr -out ca-cert.pem -signkey ca-key.pem -days 365

  (4).生成CA证书:ca-cert.pfx

  OpenSSL> pkcs12 -export -clcerts -in ca-cert.pem -inkey ca-key.pem -out ca-cert.pfx

  在Windows端可以直接安装CA根证书

7CA实现过程-生成数字证书-生成CA私钥以及自签名根证书

 

8、CA实现过程-生成数字证书-生成服务端证书

  生成服务端证书具体过程如下:

  (1).生成server私钥; 生成server私钥:

  OpenSSL> genrsa -out server-key.pem 1024

  (2).生成待签名证书; 创建证书请求:

  OpenSSL> req -new -out server-req.csr -key server-key.pem

  (3).用CA私钥进行签名,产生x509证书文件; 自签署证书:

  OpenSSL> x509 -req -in server-req.csr -out server-cert.pem -signkey server-key.pem -CA ca-cert.pem -CAkey ca-key.pem -CAcreateserial -days 365

  ( 一般情况在根CA电脑端执行)

  (4).将生成的证书保存起来;

9、CA实现过程-生成数字证书-生成客户端证书

  生成服务端证书具体过程与生成服务器证书类似:

  (1).生成client私钥; 生成server私钥:

  OpenSSL> genrsa -out client-key.pem 1024

  (2).生成待签名证书; 创建证书请求:

  OpenSSL> req -new -out client-req.csr -key client-key.pem

  (3).用CA私钥进行签名,产生x509证书文件; 自签署证书:

  OpenSSL> x509 -req -in client-req.csr -out client-cert.pem -signkey client-key.pem -CA ca-cert.pem -CAkey ca-key.pem -CAcreateserial -days 365

  ( 一般情况在根CA电脑端执行)

  (4).将生成的证书保存起来;

10、创建Https进行服务器证书测试

  在终端执行: $ node index.js

 

  在网站输入: https://localhost:8000/ 查询证书

 

原文链接:http://www.cnblogs.com/iFrank/p/14364898.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号