构建一个简易的https需要三个服务器来做实验:
CA:centos7
web服务器:centos6
客户端
一、配置CA(centos7)
1、在/etc/pki/CA/下面创建两个文件
echo 00 > /etc/pki/CA/serial(生成序列号)
touch /etc/pki/CA/index.txt
2、创建私钥
(umask 066;openssl genrsa -out private/cakey.pem 4096)
生成私钥的文件一定要放在/etc/pki/CA/private/cakey.pem
3、生成自签名证书
openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 3650
650) this.width=650;" src="https://s5.51cto.com/oss/201710/22/d7ec46f54f6138bd75b858cd72c770a7.jpg" title="1.jpg" alt="d7ec46f54f6138bd75b858cd72c770a7.jpg" />
4、给centos6证书签名
openssl ca -in httpd.csr -out certs/httpd.crt -days 300
650) this.width=650;" src="https://s4.51cto.com/oss/201710/22/00f2b9e61313fbc7a68fd382d2b05292.jpg" title="1.jpg" alt="00f2b9e61313fbc7a68fd382d2b05292.jpg" />
5、然后将签名后的证书发送到web服务器上
scp certs/httpd.crt 172.17.166.166:/etc/httpd//conf.d/ssl/
6、将自己的公钥发送到web服务器上
scp cacert.pem 172.17.166.166:/etc/httpd//conf.d/ssl/
二、配置web服务器(centos6)
1、安装mod_ssl包
yum install mod_ssl
这个包安装的同时已经生成证书,是因为安装mod_ssl的时候执行了一个脚本。用rpm -q - -scripts mod_ssl可以查看脚本:
650) this.width=650;" src="https://s1.51cto.com/oss/201710/22/403eb5cdc54b241e0a020906308ef0dd.jpg" title="1.jpg" alt="403eb5cdc54b241e0a020906308ef0dd.jpg" />
2、创建私钥:
mkdir /etc/httpd/conf.d/ssl
(umask 066;openssl genrsa -out /etc/httpd/conf.d/ssl/httpd.key 2048)
3、生成证书
openssl req -new -key /etc/httpd/conf.d/ssl/httpd.key -out /etc/httpd/conf.d/ssl/httpd.csr
650) this.width=650;" src="https://s3.51cto.com/oss/201710/22/f92c4fa7d006c15bf46aeff9d5dd49f5.jpg" title="1.jpg" alt="f92c4fa7d006c15bf46aeff9d5dd49f5.jpg" />
生成的证书里面有3项必须与CA生成自签名证书一样
(1)Country Name (2 letter code) [XX]:CN
(2)State or Province Name (full name) []:henan
(3)Organization Name (eg, company) [Default Company Ltd]:magedu.com
4、将生成的证书传给CA
scp /etc/httpd/conf.d/ssl/httpd.csr 172.17.177.177:/etc/pki/CA/
5、配置https的主配置文件:/etc/httpd/conf.d/ssl.conf
650) this.width=650;" src="https://s3.51cto.com/oss/201710/22/58c62b87ea3e5f616b6e14bd124960dc.jpg" title="1.jpg" alt="58c62b87ea3e5f616b6e14bd124960dc.jpg" />
还有
650) this.width=650;" src="https://s4.51cto.com/oss/201710/22/e4a43caf8bb5d4ff730019a43b62bac4.jpg" title="1.jpg" alt="e4a43caf8bb5d4ff730019a43b62bac4.jpg" />
更改上级证书的路径
更改三个路径,其他的可以不用调
三、访问web服务器
1、用centos去访问
650) this.width=650;" src="https://s3.51cto.com/oss/201710/22/6605db72fba925367adddeea5ad07b50.jpg" title="1.jpg" alt="6605db72fba925367adddeea5ad07b50.jpg" />
2、用windows去访问https:/172.17.166.166
650) this.width=650;" src="https://s5.51cto.com/oss/201710/22/c75395d1f4f0f61b22abfd85be88e0c9.jpg" title="1.jpg" alt="c75395d1f4f0f61b22abfd85be88e0c9.jpg" />
此时查看证书
650) this.width=650;" src="https://s2.51cto.com/oss/201710/22/01e18da58bd37275412ca8d5d2f52174.png" title="1.png" alt="01e18da58bd37275412ca8d5d2f52174.png" />
能查看到上级证书和自己的证书
如果想让信任其证书,需要安装一下上级证书:
650) this.width=650;" src="https://s5.51cto.com/oss/201710/22/6e8ae6702d3d0090e05afc01cf4b1446.png" title="1.png" alt="6e8ae6702d3d0090e05afc01cf4b1446.png" />
然后在/windows/system32/drivers/etc/HOSTS中添加一条记录就行
172.17.166.166 www.magedu.com
添加之后访问https://magedu.com就能直接访问了(因为证书只对域名认证,不认证IP地址)
650) this.width=650;" src="https://s3.51cto.com/oss/201710/22/781072decf8d38a4842aebce8d1c5e11.png" title="1.png" alt="781072decf8d38a4842aebce8d1c5e11.png" />
这样一个简易的https就构建成了
搭建一个简易的https
原文地址:http://13296637.blog.51cto.com/13286637/1975074