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;

         server_name www.george.com;

  rewrite ^/(.*) https://www.george.com/$1 permanent;

        }

 

重启nginx 测试,成功(由于是本地测试,仍然会提示不安全,但已经实现https访问)


1.做了https后,每次访问网址时显示异常

  因为https地址中,如果加载了http资源,浏览器将认为这是不安全的资源,将会默认阻止,这就会给你带 来资源不全的问题了,比如:图片显示不了,样式加载不了,JS加载不了。因为样式类,基本上都是写在本 地的,所以一般还可以,但是一些公共的js文件,往往就是存在于cdn或者其他服务器上,这时候,如果访 问不了,可能就导致了业务就完全操作不了。


小伙伴们可以关注我的×××公众号:linux运维菜鸟之旅

qrcode_for_gh_5ecc48d3d14a_258.jpg

关注“中国电信天津网厅”公众号,首次绑定可免费领2G流量,为你的学习提供流量! 

qrcode_for_gh_d20dccd1c74b_258.jpg