自动申请(并自动更新)免费ssl证书的nginx镜像

Nginx 💖 with Auto SSL

描述(Desc)

这是一个可以自动申请(并自动更新)免费ssl证书的nginx镜像。证书申请和更新使用的是开源工具acme.sh。
你可以设置证书服务商:zerossl, letsencrypt,buypass,ssl等等,或是地址,如Letsencrypt测试地址:https://acme-staging-v02.api.letsencrypt.org/directory

This is a Nginx image with auto ssl,use acme.sh, you can set default-ca,like: zerossl, letsencrypt,buypass,ssl …

当然,你也可以把它当普通的nginx镜像使用。当入参SslDomains为空(-e SslDomains=“” 或 不填),不会启动证书acme(证书获取程序)。

Openresty镜像github地址

https://github.com/xiaojun207/docker-openresty

Nginx镜像github地址

https://github.com/xiaojun207/docker-nginx

快速启动(Quick Start)

  docker pull  xiaojun207/nginx:latest

使用例子,如下(eg.):


 docker run -d -p 80:80 -p 443:443 -v "/data/web":/data/web \
      -v "/data/mynginx/nginx/ssl":/etc/nginx/ssl \
      -v "/data/mynginx/nginx/conf.d":/etc/nginx/conf.d \
      -v "/data/mynginx/acme_cert":/acme_cert \
      -e SslDomains="example.com;www.example.com;test.example.com;test2.example.com" \
      -e SslServer="zerossl" \
      -e mail="youmail@example.com" \
      --name nginx xiaojun207/nginx:latest

注意:

  • 1、建议把路径/etc/nginx/ssl、/acme_cert中的内容都持久化到宿主机保存,避免容器删除后,启动后会自动再次获取(频繁申请证书会被服务商限制)。
  • 2、不要改变nginx.conf的路径,否则证书生成会失败。
  • 3、测试部署时,建议使用letsencrypt的测试地址(即参数,-e SslServer=“https://acme-staging-v02.api.letsencrypt.org/directory”)。

使用说明

默认情况下, 使用的是服务器验证方式(非dns方式),所以请确保,需要申请证书的域名http端口可以正常访问(本nginx启动的http端口)。

参数说明

参数是否必填说明
SslDomains必填需要获取参数ssl的域名列表。多个域名间以英文分号分隔(即:; )。如果为空或不填,这就是个普通的nginx镜像,哈哈。
mail必填你的邮箱,用于获取ssl时配置,有的证书服务商有网页管理端,可以根据邮箱查看相关的证书。如果为空可能会导致注册到证书服务商失败,因此如果参数为空会使用默认邮箱。
SslServer证书服务商(名字或地址),默认:zerossl,你还可以使用:letsencrypt,buypass,ssl等等,
或者letsencrypt的测试地址:https://acme-staging-v02.api.letsencrypt.org/directory
dns域名是否采用dns验证,可选参数为:空格,dns_ali,dns_aws,dns_cf,dns_dp,,。。。
更多参数请查看:https://github.com/acmesh-official/acme.sh/wiki/dnsapi
例如1: -e dns=" ", 空格时,请查看控制台日志中的dns记录,并手动为域名添加解析;
例如2: -e dns=“dns_ali” -e Ali_Key=“sdfsdfsdfljlbjkljlkjsdfoiwje” -e Ali_Secret=“jlsdflanljkljlfdsaklkjflsa” 使用云厂商api,请添加对应的key、secret等"添加域名解析"授权参数

证书路径和nginx配置方法

容器启动,会创建一个默认证书,避免nginx启动失败。 证书获取成功后,将会被安装到固定路径:/etc/nginx/ssl/

nginx配置方法如下:

    server {
        # 80端口必须可以正常访问,用来验证你的域名
        listen      80;
        server_name example.com;
        # ...
    }
    
    server {
        listen      443 ssl;
        server_name example.com;
        root /data/web/www;
    
        ssl_stapling off;
        ssl_certificate /etc/nginx/ssl/fullchain.pem; # 证书自动安装的路径
        ssl_certificate_key /etc/nginx/ssl/key.pem; # 证书自动安装的路径
    
        # ...
    }

证书更新

证书会定期检查是否快要过期,如果快要过期,会自动更新并安装证书,你可以高枕无忧了(理论上的,我的证书还没到期,哈哈)。

非常感谢,参考连接

https://github.com/neilpang/acme.sh.git

https://github.com/akeylimepie/docker-nginx-letsencrypt

https://blog.csdn.net/dancen/article/details/121044863

使用Docker安装Nginx并配置SSL证书的步骤如下: 1. 准备SSL证书:根据不同的云服务商,证书文件的后缀可能有所不同。腾讯云的证书文件后缀为.crt和.key,阿里云的证书文件后缀为.pem和.key。确保证书文件正确并可用。 2. 下载最新的Nginx镜像:使用以下命令下载最新的Nginx镜像: ``` docker pull nginx ``` 3. 创建目录:创建几个目录,用于挂载Nginx容器内的配置文件和日志文件。使用以下命令创建目录: ``` mkdir -p /usr/local/nginx/{conf,html,logs,ssl} ``` 4. 启动一个Nginx临时容器:使用以下命令启动一个Nginx临时容器,并将配置文件复制到主机上: ``` docker run --name nginx-temp -d nginx docker cp nginx-temp:/etc/nginx/nginx.conf /usr/local/nginx/conf/nginx.conf docker rm -f nginx-temp ``` 5. 上传SSL证书:将SSL证书上传到服务器的指定目录,例如将证书文件复制到/usr/local/nginx/ssl目录下。 6. 修改nginx.conf配置文件:编辑/usr/local/nginx/conf/nginx.conf文件,配置SSL证书的路径。确保路径是在容器内的地址,而不是主机的地址。 7. 正式启动Nginx:使用以下命令启动Nginx容器,并将挂载目录和端口映射配置好: ``` docker run --name nginx -p 80:80 -p 443:443 \ -v /usr/local/nginx/html:/usr/share/nginx/html \ -v /usr/local/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \ -v /usr/local/nginx/conf.d:/etc/nginx/conf.d \ -v /usr/local/nginx/logs:/var/log/nginx \ -v /usr/local/nginx/ssl:/etc/nginx/ssl \ --privileged=true -d --restart=always nginx ``` 8. 检查Nginx是否成功启动:使用以下命令检查Nginx容器是否成功启动: ``` docker ps ``` 以上是使用Docker安装Nginx并配置SSL证书的步骤。请根据实际情况进行操作。\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* *2* *3* [docker安装nginx并配置ssl证书](https://blog.csdn.net/LuoHuaX/article/details/127320361)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值