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

本文涉及的产品
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
简介: 在阿里云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="LTAItQaq21eiKR66"
# 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

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

目录
相关文章
|
30天前
|
Linux 网络安全 Apache
CentOS 7.2配置Apache服务httpd(上)
CentOS 7.2配置Apache服务httpd(上)
186 1
|
3月前
|
消息中间件 Linux API
centos7 安装rabbitmq自定义版本及配置
centos7 安装rabbitmq自定义版本及配置
|
6天前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。同时,文章还对比了编译源码安装与使用 RPM 包安装的优缺点,帮助读者根据需求选择最合适的方法。通过具体案例,展示了编译源码安装的灵活性和定制性。
38 2
|
20天前
|
Java jenkins 持续交付
Centos7下docker的jenkins下载并配置jdk与maven
通过上述步骤,您将成功在CentOS 7上的Docker容器中部署了Jenkins,并配置好了JDK与Maven,为持续集成和自动化构建打下了坚实基础。
64 1
|
22天前
|
存储 监控 Linux
在 CentOS 7 中如何对新硬盘进行分区、格式化、挂载及配置最佳实践
本文详细介绍了在 CentOS 7 中如何对新硬盘进行分区、格式化、挂载及配置最佳实践,包括使用 `fdisk` 创建分区、`mkfs` 格式化分区、创建挂载点、编辑 `/etc/fstab` 实现永久挂载等步骤,旨在有效管理服务器磁盘空间,提高系统稳定性和可维护性。
24 1
|
29天前
|
应用服务中间件 Linux nginx
CentOS7安装Nginx
CentOS7安装Nginx
|
30天前
|
Linux PHP Apache
CentOS 7.2配置Apache服务httpd(下)
CentOS 7.2配置Apache服务httpd(下)
46 1
|
3月前
|
弹性计算 关系型数据库 MySQL
centos7 mysql安装及配置
本文详细介绍了在阿里云服务器ECS上通过yum源安装MySQL 8.0.12的过程,包括更新yum源、下载并安装MySQL源、解决安装过程中可能遇到的问题等步骤。此外,还介绍了如何启动MySQL服务、设置开机自启、配置登录密码、添加远程登录用户以及处理远程连接异常等问题。适合初学者参考,帮助快速搭建MySQL环境。
345 8
centos7 mysql安装及配置
|
23天前
|
安全 Linux 数据库连接
CentOS 7环境下DM8数据库的安装与配置
【10月更文挑战第16天】本文介绍了在 CentOS 7 环境下安装与配置达梦数据库(DM8)的详细步骤,包括安装前准备、创建安装用户、上传安装文件、解压并运行安装程序、初始化数据库实例、配置环境变量、启动数据库服务、配置数据库连接和参数、备份与恢复、以及安装后的安全设置、性能优化和定期维护等内容。通过这些步骤,可以顺利完成 DM8 的安装与配置。
146 0
|
2月前
|
Linux
CentOS 7.x时间同步服务chrony配置详解
文章详细介绍了在CentOS 7.x系统中如何安装和配置chrony服务,以及它与ntpd服务的对比,强调了chrony在时间同步方面的高效性和准确性。
145 1
CentOS 7.x时间同步服务chrony配置详解

相关产品

  • 云解析DNS