基于Nginx的SSL虚拟主机
通过私钥,证书对站点www.test.com的所有数据加密,实现通过https访问www.test.com
环境说明:
源码安装Nginx时必须使用--with-http_ssl_module参数,启用加密模块,对于需要进行SSL加密处理的站点添加ssl相关指令(设置网站需要的私钥和证书). 加密算法一般分为对称算法、非对称算法、信息摘要。
对称算法有:AES、DES,主要应用在单机数据加密。
非对称算法有:RSA、DSA,主要应用在网络数据加密。
信息摘要:MD5、sha256,主要应用在数据完整性校验。
思路:配置ssl虚拟主机->客户端验证
1.配置SSL虚拟主机
1.1生成私钥与证书
# cd /usr/local/nginx/conf
# openssl genrsa > cert.key //生成私钥
# openssl req -new -x509 -key cert.key > cert.pem //生成证书
1.2修改Nginx配置文件,设置加密网站的虚拟主机
# vim /usr/local/nginx/conf/nginx.conf
......
server { //默认情况下,https的server容器是被#注释掉的,需要去除#解除注释,以启用https
listen 443 ssl;
server_name www.test.com; //定义域名
ssl_certificate cert.pem; //这里是证书文件
ssl_certificate_key cert.key; //这里是私钥文件
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location / {
root html;
index index.html index.htm;
}
}
1.3重启nginx服务,加载配置
# /usr/local/nginx/sbin/nginx -s reload
2.客户端验证
2.1一般需要配置域名解析服务器,但这里为简化问题,修改客户端主机的本机/etc/hosts文件,进行域名解析
# vim /etc/hosts
192.168.4.5 www.test.com //设置要解析的域名及IP地址
2.2登录客户端测试
[root@client ~]# firefox https://www.test.com //信任证书后可以访问,注意要在http后面加s