基于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

上一篇:【开发者笔记】MQTT python测试笔记


下一篇:【工具】代码生成器-python脚本