使用Certbot为nginx配置免费的https证书

本文详细介绍了如何通过自动的http挑战配置Nginx SSL证书(c.abc.com)以及手动DNS挑战流程。步骤包括Nginx配置、certbot工具使用和验证证书生效。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

以一级域名 abc.com 为列

一、方案一:基于http挑战的配置(自动)

        1)Nginx 增加用于证书的挑战的配置,并重启nginx

server {
    listen       80 ;
    listen       [::]:80;
    server_name *.abc.com;


    # 将 http 请求转发到 https
    location / {
	    if ($host ~ .*\.abc.com$) {
	        return 301 https://$host$request_uri;
	    }
	}


	# 用于证书申请时的挑战
	location /.well-known/acme-challenge/ {
	    set $a $uri;
	    if ( $uri ~ .*\\/([^/]+)$) {
	        set $a $1;
	    }
	    default_type    text/plain;
	    return 200 $a;
	}
}

2)自动 c.abc.com 的https配置证书

certbot --nginx -d c.abc.com -n  --agree-tos --preferred-challenges http

3) 访问验证证书是否生效

二、方案二:基于dns挑战的配置(手动)

        1) 执行  certbot 命令

        

certbot certonly -d c.abc.com --manual --preferred-challenges dns

        2) certbot 提示如下信息:

        

 

 

         3)根据提示配置DNS,这里以阿里云为例

                a) 打开阿里云的域名解析

                

              b) 添加记录值,记录类型选择 TXT, 主机记录和记录值为 certbot 提示的信息, 如下图所示填写,确认即可:

                

 

            4)回到 certbot 的对话框,回车,即可生成 c.abc.com的 SSL证书,如下图所示:

                

 

            5)在nginx中配置证书,并重启 nginx

ssl_certificate /etc/letsencrypt/live/c.abc.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/c.abc.com/privkey.pem;

                示例:

                

 

                

         6) 访问验证证书是否生效

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值