您现在的位置是:首页 >技术交流 >Nginx 如何配置使用HTTPS服务网站首页技术交流

Nginx 如何配置使用HTTPS服务

洛阳泰山 2023-06-10 16:00:03
简介Nginx 如何配置使用HTTPS服务

步骤一:下载Nginx

从官网:nginx news 下载对应平台系统和版本的软件包,解压到指定目录。

步骤二:编辑Nginx配置

将下载的 nginx.conf 文件用文本编辑器打开,修改或者直接复制下面的内容去粘贴:

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    server {
        listen       80;
        server_name  localhost;
        location / {
            proxy_pass http://localhost:8888;
            proxy_set_header Host $http_host;
            proxy_set_header X-Forwarded-For $remote_addr;
        }
    }

    server {
       listen       443 ssl;
       server_name  localhost;

       ssl_certificate      cert.pem;
       ssl_certificate_key  cert.key;

       ssl_session_cache    shared:SSL:1m;
       ssl_session_timeout  5m;

       ssl_ciphers  HIGH:!aNULL:!MD5;
       ssl_prefer_server_ciphers  on;

       location / {
           proxy_pass http://localhost:8888;
           proxy_set_header Host $http_host;
           proxy_set_header X-Forwarded-For $remote_addr;
       }
    }
}

步骤三:申请SSL证书

在您的服务商后台申请一个,免费的域名证书。

例如阿里云,操作步骤大致如下:

  1. 后台打开数字证书管理服务 / SSL证书 / 免费证书
  2. 点击“立即购买”,支付0元得到20个免费证书
  3. 点击创建证书
  4. 在创建的证书右侧点击申请证书(验证时使用手工DNS验证,不要用文件验证)

其他服务商请根据实际情况找到免费证书的申请位置。并根据服务商的要求,进行免费证书申请。

步骤四:下载SSL证书

在您的服务商处申请到免费证书后,找到证书,选择下载。服务器选择Nginx,证书格式为 pem/key

将下载的两个证书文件重命名为:cert.pem 和 cert.key

将两个证书文件(cert.pemcert.key)放在nginx配置文件(nginx.conf)同级目录下,启动/重启nginx服务器即可完成。现在,你可以使用https访问你的域名了。

其它问题

SSL证书过期了,如何更换?

  1. 再次重复上面的 申请SSL证书 和 下载SSL证书 操作

  2. 将 cert.pem 和 cert.key 文件上传到服务器的 /www/nginx/conf 目录中覆盖原证书

  3. 再次操作上面的 重启nginx 步骤即可

如何设置域名强制跳转到https?

  1. 使用文本编辑器打开 nginx.conf,将第一个server部分里面的 location 去掉,改为 rewrite ^(.*)$ https://$host$1 permanent;,修改后的效果如下所示(可直接复制替换原内容):
    events {
        worker_connections  1024;
    }
    
    http {
        include       mime.types;
        default_type  application/octet-stream;
        sendfile        on;
        keepalive_timeout  65;
        server {
            listen       80;
            server_name  localhost;
            rewrite ^(.*)$  https://$host$1 permanent;
        }
    
        server {
           listen       443 ssl;
           server_name  localhost;
    
           ssl_certificate      cert.pem;
           ssl_certificate_key  cert.key;
    
           ssl_session_cache    shared:SSL:1m;
           ssl_session_timeout  5m;
    
           ssl_ciphers  HIGH:!aNULL:!MD5;
           ssl_prefer_server_ciphers  on;
    
           location / {
               proxy_pass http://localhost:8888;
               proxy_set_header Host $http_host;
               proxy_set_header X-Forward-For $remote_addr;
           }
        }
    }
    

    2.重启nginx即可。

 

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。