SSL 证书

自动获取 Let's Encrypt 免费证书

(适用于 Linux 系统) 

安装 Certbot
sudo apt-get update
sudo apt-get install certbot python3-certbot-nginx  # Nginx 服务器
sudo apt-get install certbot python3-certbot-apache  # Apache 服务器

获取和安装证书
sudo certbot --nginx
sudo certbot --apache
admin@debian.com
Y 同意协议
Y 同意分享电子邮件
1,2,3,4 多个域名一起


配置自动更新
Let's Encrypt 证书的有效期为 90 天。为了保持证书的有效性,建议设置自动更新任务。Certbot 默认会创建一个 cron 任务来自动更新证书。
可以通过以下命令手动测试自动更新任务
sudo certbot renew --dry-run

手动获取 Let's Encrypt 免费证书(通用方法)

安装 Certbot
sudo apt-get update
sudo apt-get install certbot
sudo certbot certonly --standalone -d yourdomain.com

配置证书
获取证书后,将证书和私钥配置到你的服务器软件(如 Nginx 或 Apache)中。通常,Certbot 会将证书和私钥存放在 /etc/letsencrypt/live/yourdomain.com/ 目录下。

自动更新
设置自动更新任务以保持证书的有效性。可以通过 cron 任务来定期执行 Certbot 的更新命令:
sudo crontab -e
0 0 * * * certbot renew --quiet
以上为每天午夜执行证书的自动更新检查

配置 Nginx 或 Apaceh

自建证书

vhost.ext  域名证书附加配置信息

create_cert.sh 创建证书到 ca(中间证书 ) 以及 certs 两个目录下

CA.bat 导入证书到 windows 里的 受信任的根证书颁发机构, 也可手动 certmgr.msc 添加

vhost.ext

authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
subjectAltName = @alt_names[alt_names]
DNS.1 = localhost
IP.2 = 127.0.0.1
IP.3 = 192.168.1.90
DNS.4 = *.yiparts.debian
DNS.5 = admin.yiparts.debian
DNS.6 = world.yiparts.debian

IP.2 = 192.168.1.90           
表示https要访问的ip,IP.3也是ip,ssl证书说明可以自签多个ip,这是自签ip的证书

DNS.4 = demo.yiparts.debian    
表示https要访问的域名,DNS.5,DNS.6都一样是域名,ssl证书说明可以自签多个域名,这是自签域名的证书

 create_cert.sh

执行 sudo ./create_cert.sh demo.yiparts.debian

#create_cert.sh
#!/bin/bashsudo mkdir -p ca
sudo mkdir -p certs# 设置域名变量
# 接收参数
# 第一个参数是域名, 例 sudo ./create_cert.sh demo.yiparts.debian
DOMAIN="$1"
# 检查是否传递了参数
if [ -z "$DOMAIN" ]; thenecho "请输入一个域名: $0 <domain>"exit 1
fi
# 提取基础域名部分
if [[ "$DOMAIN" == *"*."* ]]; thenecho "自签证书泛域名会被浏览器提示不安全"exit 1
fi# 证书文件名
GUID=$DOMAIN
CA="CA-$GUID"
EMAIL="admin@qg.com"# 去 CA 目录
cd ca# 生成 CA 私钥 需要设置密码否则会被浏览器提示不安全
sudo openssl genrsa -des3 -out "$CA.key" 2048# 生成 CA 证书 100年
sudo openssl req -x509 -new -nodes -key "$CA.key" -sha256 -days 36500 -out "$CA.crt" -subj "/CN=$DOMAIN/O=Qg Inc/OU=It/L=Guang Zhou/ST=Guang Dong/C=CN/emailAddress=$EMAIL"# 去 CERTS 目录
cd ..
cd certs# 生成 SSL 私钥
sudo openssl genrsa -out "$GUID.key" 2048# 生成 SSL 证书请求(CSR)
sudo openssl req -new -key "$GUID.key" -out "$GUID.csr" -subj "/CN=$DOMAIN/O=Qg Inc/OU=It/L=Guang Zhou/ST=Guang Dong/C=CN/emailAddress=$EMAIL"# 使用 CA 证书签署 SSL 证书,有效期 100 年
sudo openssl x509 -req -in "$GUID.csr" -out "$GUID.crt" -days 36500 -CA "../ca/$CA.crt" -CAkey "../ca/$CA.key" -CAcreateserial -extfile "../vhost.ext"# 查看签署的证书信息
sudo openssl x509 -in "$GUID.crt" -noout -text# 验证 SSL 证书
sudo openssl verify -CAfile "../ca/$CA.crt" "$GUID.crt"echo "所有操作已完成。"

CA.bat  

@echo offchcp 65001 > nulfor %%f in (CA\*.crt) do (echo 导入 %%f 证书C:\Windows\System32\certutil -store Root | findstr /C:"%%~nf" > nulif errorlevel 1 (C:\Windows\System32\certutil -addstore -f "Root" "%%f") else (echo 证书 %%f 已经导入,跳过)
)
echo  
echo 证书已成功导入到受信任的根证书颁发机构
pause

Nginx 配置

server {listen 443 ssl;ssl_certificate /home/qg/ssl/certs/demo.yiparts.debian.crt;  ssl_certificate_key /home/qg/ssl/certs/demo.yiparts.debian.key;  ssl_session_timeout 5m;ssl_session_cache shared:SSL:50m;ssl_protocols SSLv3 SSLv2 TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;    server_name demo.yiparts.debian;root /home/wwwroot/project/yiparts;  #网站根目录index index.php index.html index.htm;# Message Websocket 的 SSL 代理服务# php messageWorker.php -d start 守护进程方式启动 Websocket, 其它 start,restart,stop, ps -aux | grep messageWoker# 测试 https://demo.yiparts.debian/wss 是否正常# 使用域名连接 wss://demo.yiparts.debian/wss# 如果还是连接失败, 检查域名白名单 cfg('websocket>whiteList')location /wss{proxy_pass http://127.0.0.1:8181; # swoole 或 workerman 提供的 Websocket 监听地址:端口proxy_http_version 1.1;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection "Upgrade";proxy_set_header X-Real-IP $remote_addr; # 透传真实客户端ip, $_SERVER['HTTP_X_REAL_IP']}# 静态文件location ~ ^/(static|files|cache)/ {try_files $uri =404;  # /xxx/开头的网址直接寻找对应的文件输出,不管文件是否存在}# 这些放入上面的 /xxx/目录下#location ~* \.(htm|js|ts|css|jpg|jpeg|png|gif|ico|svg)$ {#    #ttf|eot|woff|woff2|zip|gz|pdf|xml|txt|tiff|xls|xlsx|doc|docx|ppt|pptx|cad|mp3|mp4 #    try_files $uri =404;  # 以 .xxx 结尾的直接寻找对应的文件输出,不管文件是否存在#}# XMVC 入口文件 index.phplocation / {try_files $uri $uri/ /index.php?$query_string; # 除前面的直接输出规则外所有的请求交给 index.php}# PHP 代理fastcgi_read_timeout 600s; # 开发环境下增加 FastCGI 超时时间, 用于 xdebug 调试用location ~ \.php$ {include snippets/fastcgi-php.conf;fastcgi_pass unix:/run/php/php8.2-fpm.sock;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;include fastcgi_params;# 开发环境下  禁用 OPcachefastcgi_param PHP_ADMIN_VALUE "opcache.enable=0";# 开发环境下 添加开发者头信息fastcgi_param X_DEVELOP "1";}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/43112.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

小米rdemi红米ax3000t刷机 20240707最新配套完整程序整理合集

小米rdemi红米ax3000t刷机程序地址&#xff1a; https://www.123pan.com/s/LA1bVv-EOzVv.html 小米路由器SSH密码计算器 https://www.1234f.com/fuwu/ax3000t/ 最新更新地址&#xff1a;https://www.1234f.com/fuwu/openwrt/ 依次输入如下命令&#xff1a; curl -X POST h…

Leetcode 295.数据流的中位数

295.数据流的中位数 问题描述 中位数是有序整数列表中的中间值。如果列表的大小是偶数&#xff0c;则没有中间值&#xff0c;中位数是两个中间值的平均值。 例如 arr [2,3,4] 的中位数是 3 。例如 arr [2,3] 的中位数是 (2 3) / 2 2.5 。 实现 MedianFinder 类: Media…

算法013:水果成篮

水果成篮. - 备战技术面试&#xff1f;力扣提供海量技术面试资源&#xff0c;帮助你高效提升编程技能,轻松拿下世界 IT 名企 Dream Offer。https://leetcode.cn/problems/fruit-into-baskets/ 这道题题目很长&#xff0c;仔细阅读过后&#xff0c;我们其实可以简化成&#xff…

MySQL 9.0新特性:向量存储

MySQL 9.0 正式版已经发布&#xff0c;其中一个亮点就是向量&#xff08;VECTOR&#xff09;数据类型的支持&#xff0c;本文给大家详细介绍一下这个新功能。 向量类型 MySQL 9.0 增加了一个新的向量数据类型&#xff1a;VECTOR。它是一种可以存储 N 个数据项的数据结构&…

Redis Stream:实时数据流的处理与存储

Redis Stream:实时数据流的处理与存储 引言 在当今数据驱动的世界中,实时数据处理和存储成为了许多应用的核心需求。Redis Stream作为一种新兴的数据结构,为Redis带来了强大的流处理能力。本文将深入探讨Redis Stream的特点、使用场景以及如何高效地利用它来处理实时数据流…

聚焦数字创新,定义影像未来

国际数字影像产业园在明确产业定位与发展方向时&#xff0c;应聚焦于数字影像、文创、媒体等新兴产业领域&#xff0c;以技术创新为核心动力、产业升级为保障、市场拓展为途径、国际化发展为方向&#xff0c;推动园区的持续健康发展。 作为园区的核心产业&#xff0c;数字影像产…

python socks5代理的使用

需要安装依赖 1、解决方法1 In order to make requests use socks proxy, you need to install it with it’s dependency. pip install requests[socks]2、解决方法2 pip install PySocks

第二证券股市知识:股票填权是怎么回事?利好还是利空?

1、股票填权的含义 股票填权是指在除权除息之后的一段时刻内&#xff0c;假设多数投资者看好该个股&#xff0c;股票的价格超过除权除息的基准价就叫做填权。上市公司假设能持续分红&#xff0c;就会向市场传递积极信号&#xff0c;招引更多投资者买入&#xff0c;越来越多的投…

使用Livox-Mid360激光雷达,复现FAST_LIO(保姆级教程)

前面我已经完成了mid360激光雷达的驱动安装&#xff0c;octomap的复现&#xff0c;昨天我去把这俩在正式环境中实测了一下&#xff0c;效果不好&#xff0c;走廊转角没建出来&#xff0c;我查了一下&#xff0c;应该是TF的原因&#xff0c;但这部分我还不太懂&#xff0c;看到有…

云计算【第一阶段(28)】DNS域名解析服务

一、DNS解析的定义与作用 1.1、DNS解析的定义 DNS解析&#xff08;Domain Name System Resolution&#xff09;是互联网服务中的一个核心环节&#xff0c;它负责将用户容易记住的域名转换成网络设备能够识别和使用的IP地址。一般来讲域名比 IP 地址更加的有含义、也更容易记住…

2024世界人工智能大会:deepin引领AI与操作系统融合新时代

内容来源&#xff1a;deepin&#xff08;深度&#xff09;社区 7月4日&#xff0c;WAIC 2024在上海拉开帷幕。大会围绕核心技术、智能终端、应用赋能三大板块&#xff0c;聚焦大模型、算力、机器人、自动驾驶等重点领域&#xff0c;集中展示一批“人工智能”创新应用最新成果。…

【web前端HTML+CSS+JS】--- JS学习笔记03

一、JS介绍 可以在前端页面上进行逻辑处理&#xff0c;来解决表单的验证等问题&#xff0c;提升效率&#xff0c;直接在前端提示问题&#xff0c;减少服务器压力 应用1&#xff1a;可以做静态验证和动态验证&#xff08;进行异步请求&#xff09; 应用2&#xff1a;可以解析后…

monad理解

每个学习monad的人都要写一份自己理解的monad。然后还是包括自己没人能看到自己在写啥&#xff0c;而且大部分写的还是错误的。 距离学习monad有接近2周了&#xff0c;已经挺模糊了。 monad我理解有两个基本作用&#xff1a; 1. 能够对全部的返回值做链式调用。只能封装成mona…

学习数据库2

在数据库中创建一个表student&#xff0c;用于存储学生信息 查看建表结果 向student表中添加一条新记录 记录中id字段的值为1&#xff0c;name字段的值为"monkey"&#xff0c;grade字段的值为98.5 并查看结果 向student表中添加多条新记录 2,"bob"…

鸿蒙开发小案例(名片管理))

鸿蒙开发小案例&#xff08;名片管理&#xff09; 1、页面效果1.1 初始页面1.2 点击名片展开1.3 点击收藏1.4 点击编辑按钮 2、实现代码2.1 DataModel.ets2.2 RandomUtil.ets2.3 ContactList.ets 1、页面效果 1.1 初始页面 1.2 点击名片展开 1.3 点击收藏 1.4 点击编辑按钮 2、…

百度、谷歌、必应收录个人博客网站

主要是给各个搜索引擎提交你的sitemap文件&#xff0c;让别人能搜到你博客的内容。 主题使用的Butterfly。 生成sitemap 安装自动生成sitemap插件。 npm install hexo-generator-sitemap --save npm install hexo-generator-baidu-sitemap --save在站点配置文件_config.yml…

【手撕数据结构】卸甲时/空间复杂度

目录 前言时间复杂度概念⼤O的渐进表⽰法小试牛刀 空间复杂度 前言 要想知道什么是空/时间复杂度,就得知道什么是数据结构。 这得分两层来理解。我们生活中处处存在数据&#xff0c;什么抖音热点上的国际大事&#xff0c;什么懂的都懂的雍正卸甲等等一系列我们用户看得到的&a…

鸿蒙语言基础类库:【@ohos.url (URL字符串解析)】

URL字符串解析 说明&#xff1a; 本模块首批接口从API version 7开始支持。后续版本的新增接口&#xff0c;采用上角标单独标记接口的起始版本。开发前请熟悉鸿蒙开发指导文档&#xff1a;gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md点击或者复制转到。 导入…

【K8s】专题六(5):Kubernetes 稳定性之重启策略、滚动更新策略

以下内容均来自个人笔记并重新梳理&#xff0c;如有错误欢迎指正&#xff01;如果对您有帮助&#xff0c;烦请点赞、关注、转发&#xff01;欢迎扫码关注个人公众号&#xff01; 目录 一、重启策略 1、基本介绍 2、资源清单&#xff08;示例&#xff09; 二、滚动更新策略 …

Vue框架引入

vue简介 1.1.vue是什么?Vue官网 英文官网: https://vuejs.org/中文官网: https://cn.vuejs.org/ vue是一套构建用户界面的渐进式javascript框架 构建用户界面:将我们手里拿到的数据通过某种办法变成用户可以看见的界面前端工程师的职责:就是在合适的时候发出合适的请求,然后…