如何快速使用nginx搭建https站点

如何在nginx上配置https服务

证书准备

如果是线上服务,需要使用经过CA认证中心认证之后的证书(不然用户浏览器会报不安全警告)。如果仅作测试使用,则可以跳过认证中心,使用自签名证书。

nginx配置

server {
        listen       443 ssl;
        server_name  ssl.csw.com;
        #证书文件
        ssl_certificate     server.crt;
        #私钥文件
        ssl_certificate_key server.key;
        ssl_protocols       TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers         HIGH:!aNULL:!MD5;
        location / {
            try_files $uri $uri/ /index.php?$query_string;
            root   /ssl/public;
            index  index.html index.htm index.php;
        }
        ...
    }
  1. https默认使用443端口
  2. ssl_certificate:证书文件地址,确保nginx启动用户有权读取
  3. ssl_certificate_key:私钥文件地址,确保nginx启动用户有权读取
  4. ssl_protocols和ssl_ciphers指令可以用来强制用户连接只能引入SSL/TLS那些强壮的协议版本和强大的加密算法。从1.0.5版本开始,nginx默认使用“ssl_protocols SSLv3 TLSv1”和“ssl_ciphers HIGH:!aNULL:!MD5”,所以只有在之前的版本,明确地配置它们才是有意义的。从1.1.13和1.0.12版本开始,nginx默认使用“ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2”。

测试配置是否有效

nginx -t

没有报错的话,说明配置无误,重启nginx就可以通过https方式访问站点了

浏览器信任

我本地用的是自签名证书,主流的浏览都会报危险警报,信任就可以了(这个操作其实很危险,很可能会信任一些危险的网站)。

你可能感兴趣的:(TCP/IP协议族,linux)