JUST DO IT

  • 首页
  • 归档

  • 搜索
极客时间

Nginx配置https服务器

发表于 2020-03-03 | 分类于 原创 | 0 | 阅读次数 690

本文简单总结一下Nginx如何配置https服务器,给自己的站点加上绿锁。

Nginx配置https并不复杂,主要分为两个步骤:

  • 申请CA证书
  • Nginx配置https

1. 申请CA证书

本文以腾讯云免费的DV SSL证书为例,申请CA证书。

  • 打开腾讯云SSL证书-证书管理控制台

  • 点击申请免费证书,弹出确认证书类型对话框

  • 选择免费版DVSSL证书,填写域名和申请邮箱

  • 选择自动DNS验证,点击确认申请。

  • 等待审核,提示需要一个自然工作日进行审核,但是其实很快,我这里大概等待了5分钟审核通过了。

  • 下载证书和私钥,解压后

  • 压缩包内包含申请域名的证书请求文件和不同web服务的证书和私钥文件,这里我们保存Nginx的证书和私钥。至此,申请CA证书完毕。

需要特别说明的一点是:

  • 免费的证书安全认证级别一般比较低,不显示单位名称,不能证明网站的真实身份,仅起到加密传输信息的作用,适合个人网站或非电商网站。

  • 由于此类只验证域名所有权的低端 SSL 证书已经被国外各种欺诈网站滥用,如果条件允许的话,强烈推荐部署验证单位信息并显示单位名称的 OV SSL 证书或申请最高信任级别的、显示绿色地址栏、直接在地址栏显示单位名称的 EV SSL 证书。

2. Nginx配置https

  • 拷贝1_www.66951735.com_bundle.crt 和 2_www.66951735.com.key拷贝到Nginx 服务器的 /usr/local/nginx/conf 目录(此处为默认安装目录,请根据实际情况操作)下。

  • 编辑/usr/local/nginx/conf/nginx.conf文件

    server {
         #SSL 访问端口号为 443
         listen 443 ssl;
         #填写绑定证书的域名
         server_name www.66951735.com;
         #证书文件名称
         ssl_certificate 1_www.66951735.com_bundle.crt;
         #私钥文件名称
         ssl_certificate_key 2_www.66951735.com.key;
         ssl_session_timeout 5m;
         #请按照以下协议配置
         ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
         #请按照以下套件配置,配置加密套件,写法遵循 openssl 标准。
         ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
         ssl_prefer_server_ciphers on;
         location / {
            #网站主页路径。此路径仅供参考,具体请您按照实际目录操作。
             root /var/www/www.domain.com;
             index  index.html index.htm;
         }
     }
    
  • 在 Nginx 根目录下,通过执行以下命令验证配置文件问题。

    ./sbin/nginx -t
    

    若存在问题,根据提示修改问题即可。

  • 重启Nginx,即可使用https://www.66951735.com 进行访问

    ./sbin/nginx -s reload
    

3. 遇到的问题

  • 执行./sbin/nginx -t,出现如下错误:

  • 很容易理解,Nginx缺少http_ssl_module,需要重新配置ssl模块,步骤如下:

    • 进入Nginx源码包目录,执行如下命令,配置ssl模块

      ./configure --prefix=/usr/local/nginx --with-http_ssl_module
      

      若执行的时候出现如下错误:

      请执行如下命令(CentOS):

      $ yum -y install openssl openssl-devel
      
    • 运行make命令

      make
      

      注意:此处不要执行make install,否则就是覆盖安装

    • 将刚刚编译好的nginx覆盖掉原来的nginx

      cp ./objs/nginx /usr/local/nginx/sbin/
      
    • 执行nginx -V查看ssl模块是否安装成功

      /usr/local/nginx/sbin/nginx -V
      

4. HTTP 自动跳转 HTTPS

  • 编辑/usr/local/nginx/conf/nginx.conf文件,添加如下配置

    server {
        listen 80;
        #填写绑定证书的域名
        server_name www.66951735.com;
        #把http的域名请求转成https
        return 301 https://$host$request_uri;
    }
    
  • 重启nginx,即可实现http自动跳转到https

  • 本文作者: jkl_yuiop
  • 本文链接: https://leeshengis.com/archives/nginx配置https服务器
  • 版权声明: 本博客所有文章除特别声明外,均采用CC BY-NC-SA 3.0 许可协议。转载请注明出处!
# 极客时间
macOS编译OpenJDK13
Java线程池原理分析(转)
  • 文章目录
  • 站点概览
jkl_yuiop

jkl_yuiop

1,383 日志
37 分类
1 标签
RSS
E-mail
Creative Commons
Links
  • 学习笔记
© 2023 jkl_yuiop

如需同步其他《极客时间》专栏,请邮件leeshengis@163.com(免费)