letsencrypt免费https(*.yourdomain.com)泛域名证书申请及七牛云SSL证书更新

letsencrypt免费https泛域名(*.yourdomain.com)证书申请

安装环境CentOS
*.example.com形式的域名即为泛域名,不通的子域名共用一个证书,省去多次申请的烦恼

1. 工具安装

安装最新的certbot
sudo yum install -y certbot
已安装cerbot,需升级至高版本
sudo yum update -y certbot

2. 证书申请

将*.yourdomain.com 替换成你的泛域名
运行命令:
sudo certbot certonly --preferred-challenges dns --manual -d *.yourdomain.com --server https://acme-v02.api.letsencrypt.org/directory
出现以下内容后,请在阿里云云解析中添加一条TXT解析记录

Please deploy a DNS TXT record under the name
_acme-challenge.yourdomain.com with the following value: 

xxxxx  

Before continuing, verify the record is deployed.

添加阿里云云解析TXT解析记录
添加阿里云云解析TXT解析记录

3. 证书使用(nginx)

/etc/nginx/conf.d中新增配置文件xx.conf: 添加server节点配置并设置获取到大证书地址
在这里插入图片描述

4. 证书自动更新(不适用于泛域名,泛域名只有每三个月手动更新一次)

letsencrypt的证书有效期是三个月,可设置crontab自动任务进行更新

30 1 10 * * /usr/bin/certbot renew && /usr/sbin/nginx -s reload # 每月10日1点30分执行一次

5.附上七牛域名ssl证书更新脚本

#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
    update_sslcert
    -----------------------------
    七牛云 > SSL证书服务 > 更新自有证书
"""

import qiniu
from qiniu import DomainManager
import logging

logging.basicConfig(level=logging.INFO,
                    format='%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s',
                    datefmt='%Y/%m/%d %H:%M:%S',
                    filename='/var/log/qiniu/update_sslcert.log',
                    filemode='a')
console = logging.StreamHandler()
console.setLevel(logging.INFO)
logging.getLogger('').addHandler(console)

# 账户ak,sk
access_key = '*****************************'
secret_key = '*****************************'

auth = qiniu.Auth(access_key=access_key, secret_key=secret_key)
domain_manager = DomainManager(auth)

domain_name = 'yourdomain.com'
privatekey = "/etc/letsencrypt/live/%s/privkey.pem" % domain_name
ca = "/etc/letsencrypt/live/%s/fullchain.pem" % domain_name

with open(privatekey, 'r') as f:
    privatekey_str = f.read()

with open(ca, 'r') as f:
    ca_str = f.read()

ret, info = domain_manager.create_sslcert(
    domain_name, domain_name, privatekey_str, ca_str)
logging.info('Post sslcert: %s' % ret['certID'])
logging.info(info)

ret, info = domain_manager.put_httpsconf('.' + domain_name, ret['certID'], False)
logging.info(info)
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
在 Node.js 中使用七牛云实现图片下载可以按照以下步骤进行: 1. 首先,保你已经安装了 `qiniu` 模块,可以通过以下命令进行安装: ``` npm install qiniu ``` 2. 在你的代码中引入 `qiniu` 模块: ```javascript const qiniu = require('qiniu'); ``` 3. 设置七牛云的相关配置,包括 Access Key、Secret Key 和存储空间的名称: ```javascript const accessKey = 'your-access-key'; const secretKey = 'your-secret-key'; const bucket = 'your-bucket-name'; ``` 4. 初始化七牛云的配置: ```javascript const mac = new qiniu.auth.digest.Mac(accessKey, secretKey); const config = new qiniu.conf.Config(); const bucketManager = new qiniu.rs.BucketManager(mac, config); ``` 5. 定义一个函数来下载图片,传入图片的 key(文件名)作为参数: ```javascript function downloadImage(key) { return new Promise((resolve, reject) => { const savePath = './images/' + key; // 设置保存图片的路径和文件名 const options = { force: true, // 强制覆盖已存在的文件 }; bucketManager.fetch(bucket, key, savePath, options, (err, respBody, respInfo) => { if (err) { reject(err); } else { resolve(respInfo); } }); }); } ``` 6. 调用 `downloadImage` 函数来下载图片,传入图片的 key: ```javascript downloadImage('your-image-key') .then(respInfo => { console.log('图片下载成功', respInfo); }) .catch(err => { console.error('图片下载失败', err); }); ``` 以上代码会将指定的图片下载到当前目录下的 `./images/` 文件夹中,并输出相应的结果信息。 请注意替换代码中的 `your-access-key`、`your-secret-key` 和 `your-bucket-name` 为你自己的七牛云的相关信息,以及将 `'your-image-key'` 替换为你要下载的图片的实际 key。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值