Nginx配置之nginx做https验证

Nginx配置之nginx做https验证

概要

  • 关于https所需要的证书,可以到StartSSL上申请,原理部分请移步将网站打造为https。
  • nginx的server模块配置443端口的监听,并且将证书,私钥信息也罗列完整
  • nginx的server模块配置80端口,强制跳转到https

HTTPS的基本原理

  • 公钥私钥 ssh-keygen -t rsa -C “new email”证书,公钥加上CA的认证
  • CA是颁发受信任的证书的机构
  • TLS1.2是目前最高版本,还没有发现bug。不要选择SSL,TLS是SSL的后续版本,比SSL更加安全。OpenSSL是支持TLS的。
  • 关于一系列的RSA加密解密,包括对称加解密,SHA摘要签名等,注意理解其原理即可。其中SHA1已被山东大学的王小云教授破解,改用SHA2.
  • 302浏览器端跳转需要重新进行tcp握手
  • 服务器端发送的证书,浏览器需要到其CA进行验证是否可信
  • 证书私钥主要用来协商对称加密秘钥

申请证书

StartSSL是一个免费的全球范围认证的证书提供商。具体的注册以及使用参考其官网,这篇博文讲解得还是比较细致的。

nginx配置支持

#redirect to https
server {
    listen 80;
    server_name blog.huachao.me;
    return 301 https://$server_name$request_uri;
}

#proxy & ssl
server {
    listen 443 ssl;
    server_name blog.huachao.me;
    ssl on;
    ssl_certificate /path/to/cert_file;
    ssl_certificate_key /path/to/private_key;
    location / {
        proxy_pass http://localhost:port;
    }
}