1.什么是https?
- HTTPS (全称:Hyper Text Transfer Protocol over SecureSocket Layer),是以安全为目标的 HTTP 通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性 。
- HTTPS 在HTTP 的基础下加入SSL层,HTTPS 的安全基础是 SSL,因此加密的详细内容就需要 SSL。
- HTTPS 存在不同于 HTTP 的默认端口及一个加密/身份验证层(在 HTTP与 TCP 之间)。这个系统提供了身份验证与加密通讯方法。现在它被广泛用于万维网上安全敏感的通讯,例如交易支付等方面
2.nginx实现https
(1)重新编译nginx,https加密需要
http_ssl_module模块
cd /root/nginx/nginx1.10.3
./configure --prefix=/usr/local/nginx --with-http_realip_module --with-http_image_filter_module=dynamic --with-http_ssl_module
make &&make install ##重新编译安装
/root/nginx-1.10.3/objs
cp nginx /usr/local/nginx/sbin
注意:如果之前用其他版本做完图片压缩实验,新版本重新编译完,需要将之前的模块需要再重新拷贝到模块目录,不然启动会报错
cp ngx_http_image_filter_module.so /usr/local/nginx/modules/
(2)生成自签名证书
cd /etc/pki/tls/certs ##自签名证书目录
make cert.pem
cn -> shaanxi -> xi'an -> westos -> linux-> server1 ##注意主机名字 -> root@westos.org
cp cert.pem /usr/local/nginx/conf/ ## 将生成的证书复制到nginx的conf目录下,让他能够识别到
(3)修改配置文件
vim nginx.conf
server {
listen 443 ssl;
server_name www.westos.org; ##域名访问
ssl_certificate cert.pem;
ssl_certificate_key cert.pem; ####cert.pem 此处和配置文件默认的不同,生成的是什么就是什么
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location / {
root /web; ##默认分布目录
index index.html index.htm;
}
}
(4)创建发布目录
mkdir /web
vim /web/index.html
server1~~~
(5)重启服务
nginx -s reload
测试:
在物理机修改本地域名
vim /etc/hosts
172.25.254.11 www.westos.org
浏览器访问:https://www.westos.org 确认安全例外
在设置里选preference -> Advanced -> Certificates -> View Certificates
可以在里面找到自签名的证书
确认证书,看到发布页内容