openssl实现私有CA
程序员文章站
2022-06-26 10:13:27
...
实验环境:
CA:192.168.0.109 (RHEL7.2)
https_server:192.168.0.144 (centos6.9)
client:192.168.0.176 (mac)
0x01 在109搭建搭建CA
- 在/etc/pki/CA目录下操作,生成ca私钥
(umask 077;openssl genrsa -des -out private/cakey.pem 2048)
- 由私钥生成公钥(可免)
openssl rsa -in private/cakey.pem -pubout > private/capub.pem
- 用私钥自签名生成CA的证书cacert.pem
openssl req -new -x509 -key private/cakey.pem -out /etc/pki/CA/cacert.pem
0x02 在144搭建https
- 安装mod_ssl模块
[aaa@qq.com ~]yum install mod_ssl
[aaa@qq.com ~]# rpm -ql mod_ssl
/etc/httpd/conf.d/ssl.conf
/usr/lib64/httpd/modules/mod_ssl.so
/var/cache/mod_ssl
/var/cache/mod_ssl/scache.dir
/var/cache/mod_ssl/scache.pag
/var/cache/mod_ssl/scache.sem
- 按照144上配置文件/etc/httpd/conf.d/ssl.conf的目录默认存放要求,生成私钥。
SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
cd /etc/pki/tls/private/
(umask 077;openssl genrsa -des -out localhost.key 1024)
- 生成https的证书请求文件,发送给CA。
openssl req -new -key private/localhost.key -out localhost.csr
scp localhost.csr aaa@qq.com:/tmp
0x03 在109的CA上给144签证
根据/etc/pki/tls/openssl.conf配置文件要求创建index.txt文件,serial文件
touch /etc/pki/CA/index.txt
echo 00 > /etc/pki/CA/serial
给144的证书请求文件签证
[aaa@qq.com CA]openssl ca -in /tmp/localhost.csr -out /tmp/localhost.crt
[aaa@qq.com CA]# cat index.txt
V 210224115705Z 00 unknown /C=CN/ST=SD/O=redwand/OU=it/CN=www.redwand.com/emailAddress=aaa@qq.com
[aaa@qq.com CA]# cat serial
01 #serial号码+1
[aaa@qq.com CA]# ls newcerts/
00.pem #签好的https的证书
按照144上配置文件/etc/httpd/conf.d/ssl.conf的要求放置109的证书
scp 00.pem aaa@qq.com:/etc/pki/tls/certs/localhost.crt
0x04 client访问https://www.redwand.com
得到警告信息,因为该证书的颁发者的证书redwand是自签名的。
隐私与安全–》查看证书–》证书颁发机构,导入CA的证书cacert.crt,从而信任颁发机构。
推荐阅读
-
linux系统中使用openssl实现mysql主从复制
-
linux系统中使用openssl实现mysql主从复制
-
SpringBoot开发案例之打造私有云网盘的实现
-
PHP基于openssl实现的非对称加密操作示例
-
使用openssl实现rsa非对称加密算法示例
-
PHP实现在对象之外访问其私有属性private及保护属性protected的方法
-
ES5 模拟 ES6 的 Symbol 实现私有成员功能示例
-
PHP基于openssl实现的非对称加密操作示例
-
用openssl为WEB服务器生成证书(自签名CA证书,服务器证书)
-
用JavaScript实现静态私有变量,静态私有方法,私有变量,私有方法,公有属性,公有办法