有梦最美,希望相随

https

给网站启用https / ssl

railscasts中讲了一种简单的方式. 就是用nginx做反向代理, 给nginx启用https / ssl. 这样做的好处是程序基本不用改, 通过nginx来做的话效率有保证.

首先切换到nginx的conf目录: cd /opt/nginx/conf

生成证书:

openssl req -new -nodes -keyout server.key -out server.csr

openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

然后修改nginx的https部分的配置为如下形式:

# HTTPS server

  server {

  listen       443;

  server_name  *.dev;

  ssl                  on;

  ssl_certificate      server.crt;

  ssl_certificate_key  server.key;

  ssl_session_timeout  5m;    

  ssl_protocols  SSLv2 SSLv3 TLSv1;

  ssl_ciphers  HIGH:!aNULL:!MD5;

  ssl_prefer_server_ciphers   on;

  location / {

      proxy_set_header Host $host;

      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

      proxy_set_header X-Forwarded-Proto https;

      proxy_redirect off;

      proxy_pass https://127.0.0.1;

  }

}


测试nginx配置无误: ./nginx -t


重新载入nginx 配置: ./nginx -s reload


然后就可以进行测试了


以上有个问题, 就是证书是自己颁发的, 通过浏览器浏览https页面的时候会有警告. 如果是api, 不提供浏览器访问的话, 我觉得是没有什么问题的.


疑问: 自己签发的证书安全性方面会有问题吗?  应该是没有的


后记: https 加密包括url加密, 所以url中的参数信息等等同样是安全的.


评论(1)
热度(3)
< >
© 有梦最美,希望相随 | Powered by LOFTER