首页 > 代码库 > 基于openssl实现https访问
基于openssl实现https访问
1.说明
部署之前,先举例说明一下,方便理解。
比如我想去租房子,于是便在某网站上搜寻,结果联系的时候发现好多都是假的。
有看上的房子吧,又担心房东是个骗子。这个时候,我为了租房,找到了一家房屋中介公司,虽然收费,但是可以放心的租到房子。
2.部署
CA server: 192.168.1.10
http server: 192.168.1.200
2-1)在CA上生成自签证 cacert.pem
切换到CA server: 192.168.1.10
2-1-1)创建私钥
#(umask 077;openssl genrsa -out /etc/pki/CA/private/cakey.pem)
*说明:私钥的权限要设置到最低,可以使用子shell方式创建。
2-1-2)生成自签证书(用于发放给个人用户)
#openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -out /etc/pki/CA/cacert.pem
需要填写的内容,可以在配置文件中设置
#vim /etc/pki/tls/openssl.cnf
2-2-1)服务端请求生成证书
切换到http server:192.168.1.200
#yum install mod_ssl -y #用于https的配置
#mkdir /etc/httpd/ssl
#cd /etc/httpd/ssl
#(umask 077;openssl genrsa -out httpd.key) #生成私钥
#openssl req -new -key httpd.key -out httpd.csr #生成证书请求
*注意:红色框中填写的内容要与在CA上设置内容一致(参考2-1-2)),黄色框中的域名就是CA要认证的域名。
2-2-2)将生成的httpd.csr证书请求文件传到CA server,由CA发送证书。
#pwd
/etc/httpd/ssl
#scp httpd.csr root@192.168.1.10:/tmp
2-2-3)切换到CA server,进行证书分发
#openssl ca -in /tmp/httpd.csr -out /tmp/httpd.crt -days 365
将生成的证书发送给http server
#scp /tmp/httpd.crt root@192.168.1.200:/etc/httpd/ssl
2-2-4)切换到http server查看
#ls /etc/httpd/ssl
httpd.crt httpd.csr http.key
在/etc/httpd/conf.d/ssl.conf修改私钥和证书的存储位置,重启apache,查看443端口
SSLCertificateKeyFile /etc/httpd/ssl/httpd.key
SSLCertificateFile /etc/httpd/ssl/httpd.crt
#netstat -tunlp |grep httpd
tcp 0 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 15608/httpd
tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 15608/httpd
2-3)客户端下载CA上的证书 cacert.pem文件 ,改名为cecert.crt.双击安装证书。
在本机hosts中做域名映射
192.168.1.200 www.slitobo.com
浏览器访问即可;
本文出自 “遥西向南” 博客,请务必保留此出处http://slitobo.blog.51cto.com/12957087/1931603
基于openssl实现https访问