在阿里云centos7.4上配置nginx免费的https证书,支持泛解析

简介: 在阿里云cetnos7.4上配置nginx免费的https证书,支持泛解析

在阿里云centos7.4上配置nginx免费的https证书,支持泛解析

一 原理说明:

使用acme.sh工具来生成证书,但为了方面采用的使用dns添加TXT记录验证方式,跟传统的webroot有区别。这种方式更简单,快速。

二 效果如下:

三 准备工作或者必要条件

  • 1 购买阿里云的的ecs服务器,并且在阿里云已经购买域名
  • 2 阿里云开通accessKey,该accessKey需要有操作管理dnsapi的权限,注意:acme使用的letsencript为了验证域名是否是你自己拥有,会通过在域名解析记录中添加一条TXT的解析记录来做为验证。
  • 3 我所有操作都是/root/.acme.sh目录下执行的

四 实施步骤

  • 1 安装nginx

      ## 安装依赖组件,openssl-devel是必须的,因为nginx要使用ssl指令
      # yum install -y gcc gcc-c++
      # yum install –y openssl-devel pcre-devel zlib-devel
      # wget http://nginx.org/download/nginx-1.10.3.tar.gz
      # tar -zxvf nginx-1.10.3.tar.gz
      # cd  nginx-1.10.3
      # ./configure --prefix=/export/nginx-1.10.3 --with-http_stub_status_module --with-http_ssl_module
      # make && make install
    
  • 2 安装acme证书签发工具

    ## 参考文档https://github.com/Neilpang/acme.sh
    # pwd
    /root
    # curl  https://get.acme.sh | sh
    
  • 3 使用dns_ali生成证书

    这里需要把阿里云的accessKey访问设置环境变量中,因为acme在执行过程会去调用阿里云的dnsapi接口,添加TXT的解析记录,在生成证书完毕后,会删除该记录,在解析列表中没有,但是你可以从解析历史记录中查看的历史数据的。

    说名:一般不需要写www.wallbase.tv而是使用*.wallbase.tv代替所有的泛解析域名。dns_ali表示使用的阿里云dns,当然acme还支持很多的dns提供商。

      # export Ali_Key="xxxxx"
      # export Ali_Secret="***********"
      # ./acme.sh --issue --dns dns_ali -d wallbase.tv -d *.wallbase.tv
      ## 安装证书文件/root/.acme.sh/ssl/wallbase.tv
      # mkdir -p ssl/wallbase.tv
      # ./acme.sh --installcert -d wallbase.tv -d *.wallbase.tv --key-file ssl/wallbase.tv/privkey.pem --fullchain-file ssl/lockbur.com/fullchain.pem
    

    官方说明: The Ali_Key and Ali_Secret will be saved in ~/.acme.sh/account.conf and will be reused when needed. 意思就是你第一次执行后,acem会保留的的账号信息。所有你执行完毕,就可以使用如下命令删除环境变量:

       # env 
       # unset Ali_Key
       # unset Ali_Secret
    

    执行完上面的步骤之后,会在你的/root/.acme.sh/ssl/wallbase.tv目录生产两个文件privkey.pem和fullchain.pem。没错这就是证书文件了。

五 把证书安装到nginx上去

  • 1 第一个 server指令监听的80端口,把所有http的访问重定向到https。
  • 2 nginx配置的关键指令 listen 443 ssl;监听443端口。
  • 3 指定证书文件的位置。这里证书文件可以泛解析,我二级域名都用同一个证书。
ssl_certificate /root/.acme.sh/ssl/wallbase.tv/fullchain.pem;
ssl_certificate_key /root/.acme.sh/ssl/wallbase.tv/privkey.pem;
  • 4 nginx的配置文件如下:
    server {
        listen 80;
        server_name localhost;
        rewrite ^(.*)$ https://$host$1 permanent;
    }
    server {
        server_name wallbase.tv www.wallbase.tv alpha.wallbase.tv;
        listen      443 ssl;
     ssl_certificate /root/.acme.sh/ssl/wallbase.tv/fullchain.pem;
        ssl_certificate_key /root/.acme.sh/ssl/wallbase.tv/privkey.pem;
        location / {
            limit_conn perip 10;
            proxy_pass http://localhost:3000;
        }
    location /api {
            limit_conn perip 10;
            proxy_pass http://localhost:1062;
        }
        location ~* \.(eot|ttf|woff|svg)$ {
            limit_conn perip 10;
            add_header Access-Control-Allow-Origin *;
         proxy_pass http://localhost:3000;
        }
    }
    server {
          server_name assets.wallbase.tv;
      listen      443 ssl;
        ssl_certificate /root/.acme.sh/ssl/wallbase.tv/fullchain.pem;
        ssl_certificate_key /root/.acme.sh/ssl/wallbase.tv/privkey.pem;
     location / {
             root html;
        }
       location ~* \.(eot|ttf|woff|svg)$ {
            limit_conn perip 10;
            add_header Access-Control-Allow-Origin *;
       }
    }
  • 5 最后还有关键一步,重启nginx
/export/nginx-1.10.3/sbin/nginx -s reload

然后去访问你的页面,看看是不是有点炫酷了。

目录
相关文章
|
应用服务中间件 Linux 网络安全
Centos 8.0中Nginx配置文件和https正书添加配置
这是一份Nginx配置文件,包含HTTP与HTTPS服务设置。主要功能如下:1) 将HTTP(80端口)请求重定向至HTTPS(443端口),增强安全性;2) 配置SSL证书,支持TLSv1.1至TLSv1.3协议;3) 使用uWSGI与后端应用通信(如Django);4) 静态文件托管路径设为`/root/code/static/`;5) 定制错误页面(404、50x)。适用于Web应用部署场景。
1239 87
|
存储 Linux Apache
在CentOS上配置SVN至Web目录的自动同步
通过上述配置,每次当SVN仓库中提交新的更改时,`post-commit`钩子将被触发,SVN仓库的内容会自动同步到指定的Web目录,从而实现代码的连续部署。
403 16
|
NoSQL 安全 Linux
设置Redis在CentOS7上的自启动配置
这些步骤总结了在CentOS 7系统上设置Redis服务自启动的过程。这些命令提供了一个直接且明了的方式,确保Redis作为关键组件在系统启动时能自动运行,保障了依赖于Redis服务的应用的稳定性和可用性。
999 9
|
Linux
Centos6配置阿里云yum源报错
在CentOS 6配置阿里云Yum源时,可能出现EPEL仓库访问报错(404 Not Found)。解决方法:编辑`/etc/yum.repos.d/epel.repo`文件,将`enabled`和`gpgcheck`参数设为0 ``` 此设置可解决仓库无法访问的问题。
2613 29
|
Ubuntu 安全 Linux
CentOS与Ubuntu中防火墙配置命令集汇
有了这些,你就能遨游在 CentOS 和 Ubuntu 的海洋中,频繁地改变你的防火墙设置,快速地应对各种安全威胁,同时也能保证你的系统可以正常工作。出发吧,勇敢的编程者,随着这些命令集的涌动,扬帆起航,走向安全的网络世界!
598 5
|
安全 网络协议 算法
HTTP/HTTPS与SOCKS5协议在隧道代理中的兼容性设计解析
本文系统探讨了构建企业级双协议隧道代理系统的挑战与实现。首先对比HTTP/HTTPS和SOCKS5协议特性,分析其在工作模型、连接管理和加密方式上的差异。接着提出兼容性架构设计,包括双协议接入层与统一隧道内核,通过协议识别模块和分层设计实现高效转换。关键技术部分深入解析协议转换引擎、连接管理策略及加密传输方案,并从性能优化、安全增强到典型应用场景全面展开。最后指出未来发展趋势将更高效、安全与智能。
810 1
|
域名解析 缓存 网络协议
Let's Encrypt 配置 HTTPS 免费泛域名证书
Let's Encrypt 配置 HTTPS 免费泛域名证书
4620 0
|
安全 算法 小程序
互联网并发与安全系列教程(17) - 生产环境配置HTTPS证书
互联网并发与安全系列教程(17) - 生产环境配置HTTPS证书
530 0
|
Linux Docker Windows
Docker配置https证书案例
本文介绍了如何为Docker的Harbor服务配置HTTPS证书,包括安装Docker和Harbor、修改配置文件以使用证书、生成自签名证书、配置证书以及验证配置的步骤。
1898 3
Docker配置https证书案例