Nginx服务器部署SSL证书实现网站HTTPS加密方法


  现在,随着百度全站HTTPS加密的领头,SSL证书应用越来越广泛,作为服务器证书,需要在各种Nginx、Apache、IIS等服务器上部署,本文给大家介绍如何在Nginx服务器部署SSL证书,Nginx服务器部署SSL证书方法。

  一、何为SSL证书,SSL证书与HTTPS的关系

  SSL 证书是一种数字证书,它使用 Secure Socket Layer 协议在浏览器和 Web 服务器之间建立一条安全通道,从而实现:

  1、数据信息在客户端和服务器之间的加密传输,保证双方传递信息的安全性,不可被第三方窃听;

  2、用户可以通过服务器证书验证他所访问的网站是否真实可靠。

  HTTPS 是以安全为目标的 HTTP 通道,即 HTTP 下加入 SSL 加密层。HTTPS 不同于 HTTP 的端口,HTTP默认端口为80,HTTPS默认端口为443。

  二、SSL证书的应用站点

  1、网上银行

  毫无疑问,网上银行一定会使用SSL证书来保障数据安全。

  2、购物交易类网站

  电商网站、支付宝、Paypal等肯定会全程加密以保护你的信息安全。

  3、注册与登陆

  一些大的网站,比如电子邮箱,注册会员或者登陆的时候,会专门通过SSL通道,保证密码安全不被窃取。

  4、政府机构网站

  政府机构网站信息数据关系到国家机要,必须进行SSL加密来保障国家信息安全。

  5、其他涉及敏感机要信息系统

  三、如何获得SSL证书

  获得SSL证书需要先合法CA机构如沃通CA进行申请,审核申请材料通过后才签发SSL证书,高级的SSL证书如EV SSL需要付费购买,当然其也提供了免费的SSL证书供大家使用。申请地址http://freessl.wosign.com(免费ssl证书申请步骤)

  四、如何部署SSL证书到nginx

  编辑配置文件nginx.conf,给站点加上HTTPS协议

  server {

  server_name YOUR_DOMAINNAME_HERE;

  listen 443;

  ssl on;

  ssl_certificate /usr/local/nginx/conf/33iq.crt;

  ssl_certificate_key /usr/local/nginx/conf/33iq_nopass.key;

  # 若ssl_certificate_key使用33iq.key,则每次启动Nginx服务器都要求输入key的密码。

  }

  重启Nginx后即可通过https访问网站了。

  四、全站HTTPS还是只针对注册、登陆https加密

  既然HTTPS能保证安全,为什么全世界大部分网站都仍旧在使用HTTP呢?使用HTTPS协议,对服务器来说是很大的负载开销。从性能上考虑,我们无法做到对于每个用户的每个访问请求都进行安全加密(当然,Google这种大神除外)。作为一个普通网站,我们所追求的只是在进行交易、密码登陆等操 作时的安全。通过配置Nginx服务器,可以使用rewrite来做到这一点。

  在https server下加入如下配置:

  if ($uri !~* "/logging.php$")

  {

  rewrite ^/(.*)$ http://$host/$1 redirect;

  }

  在http server下加入如下配置:

  if ($uri ~* "/logging.php$")

  {

  rewrite ^/(.*)$ https://$host/$1 redirect;

  }

  这样一来,用户会且只会在访问logging.php的情况下,才会通过https访问。

  更新:有一些开发框架会根据 $_SERVER['HTTPS'] 这个 PHP 变量是否为 on 来判断当前的访问请求是否是使用 https。为此我们需要在 Nginx 配置文件中添加一句来设置这个变量。遇到 https 链接重定向后会自动跳到 http 问题的同学可以参考一下。

  server {

  ...

  listen 443;

  location \.php$ {

  ...

  include fastcgi_params;

  fastcgi_param HTTPS on; # 多加这一句

  }

  }

  server {

  ...

  listen 80;

  location \.php$ {

  ...

  include fastcgi_params;

  }

  }

  四、关于访问某些站点提示“该证书不受浏览器信任”

  很多站点为了节约成本,使用了自签名SSL证书,自签名SSL证书是不受浏览器信任的。要获取受浏览器信任的证书,则需要到证书授权中心(又叫做CA机构)申请,为每个使用公开密钥的用户发放一个数字证书。浏览器在默认情况下内置了一些CA机构(如wosign CA)的证书,使得这些机构颁发的证书受到信任。

 


你可能感兴趣的:(免费ssl证书,Nginx服务器)