1.生成key文件:
openssl genrsa -out ssl.key 2048
#提示输入密码,暂时回车
#测试环境不要加密码,每次调试都要输入密码很麻烦
2.使用key生成一个csr文件:
openssl req -new -key ssl.key -out ssl.csr
#测试环境,出提示一路回车即可
3.用csr文件、key文件,颁发证书
openssl x509 -req -days 365 -in ssl.csr -signkey ssl.key -out ssl.crt
#生成一个ssl.crt证书文件
4.修改nginx配置文件
#之前编译nginx已经默认支持ssl模块
#如不确定,可以用 nginx -V 查看版本及编译参数
两种方法:
1.负载均衡服务器实现
2.实际的webserver实现
这里采用在负载服务器上实现:
nginx.conf配置文件中:
listen 改为443
listen 10.0.0.3:443;
然后在server区块加入内容:
###https
ssl on;
ssl_certificate /application/nginx/ssl/ssl.crt;
ssl_certificate_key /application/nginx/ssl/ssl.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
###end
最后加了一个location区块: ——避免了每次跳转网页时变成http
server {
listen 10.0.0.3:80;
rewrite ^/(.*) https://www.george.com/$1 permanent;
}
重启nginx 测试,成功(由于是本地测试,仍然会提示不安全,但已经实现https访问)
1.做了https后,每次访问网址时显示异常
因为https地址中,如果加载了http资源,浏览器将认为这是不安全的资源,将会默认阻止,这就会给你带来资源不全的问题了,比如:图片显示不了,样式加载不了,JS加载不了。因为样式类,基本上都是写在本地的,所以一般还可以,但是一些公共的js文件,往往就是存在于cdn或者其他服务器上,这时候,如果访问不了,可能就导致了业务就完全操作不了。
领取专属 10元无门槛券
私享最新 技术干货