From eecbe4fa4e2487daf2ba29718d19bfecf7ea9ea8 Mon Sep 17 00:00:00 2001 From: kuku Date: Mon, 30 Dec 2024 17:46:00 +0800 Subject: [PATCH] 12/30 --- 20241227 日报.md | 3 +- 20241230 日报.md | 73 +++++++++++ 技术支持/{ => 图片}/通道名字带不出来.png | Bin 技术支持/技术支持文档.md | 2 +- 技术支持/证书获取方法.md | 159 ++++++++++++++++++++--- 5 files changed, 218 insertions(+), 19 deletions(-) create mode 100644 20241230 日报.md rename 技术支持/{ => 图片}/通道名字带不出来.png (100%) diff --git a/20241227 日报.md b/20241227 日报.md index 23ee951..82b5939 100644 --- a/20241227 日报.md +++ b/20241227 日报.md @@ -1,4 +1,4 @@ -# 2024/12/26 日报 +# 2024/12/27 日报 ### 做了什么 @@ -99,7 +99,6 @@ server { - 处理客户问题 - 鉴权token拿不到 版本问题 - - ### 学了什么 diff --git a/20241230 日报.md b/20241230 日报.md new file mode 100644 index 0000000..ac1d2bc --- /dev/null +++ b/20241230 日报.md @@ -0,0 +1,73 @@ +# 2024/12/30 日报 + +### 做了什么 + +- 编写证书获取文档windows部分 + +#### 1: 下载 win-acme + +1. 访问 win-acme 的 [GitHub 页面](https://github.com/win-acme/win-acme)。 +2. 下载最新版本的 ZIP 文件(通常是 `wacs-x.x.x.xxx.zip`)。 +3. 解压到一个文件夹,例如 `C:\win-acme\`。 + +#### 2: 运行 win-acme + +1. 打开命令提示符(以管理员身份运行)。 + +2. 导航到 win-acme 文件夹: + + ```cmd + cmd + 复制代码 + cd C:\win-acme + ``` + +3. 运行主程序: + + ```cmd + cmd + 复制代码 + wacs.exe + ``` + +#### 3: 配置证书 + +运行 `wacs.exe` 后,您会看到一个交互式菜单,按照提示操作: + +1. **选择选项**:选择 `N` 以创建新的 HTTPS 绑定。 + +2. **输入域名**:输入要申请证书的域名(如 `example.com`)。 + +3. **验证域名** + + :**选择验证方式**: + + - **HTTP-01 验证**:确保域名指向服务器的公网 IP,并且可以通过 80 端口访问。 + - **DNS-01 验证**:需要配置 DNS TXT 记录(适合无 80 端口访问的情况)。 + +4. **证书生成**:成功验证后,win-acme 会自动生成证书。 + +#### 4: 配置证书路径 + +win-acme 生成的证书路径通常位于: + +```cmd +复制代码 +C:\ProgramData\win-acme\acme-v02.api.letsencrypt.org\Certificates +``` + +证书文件包括: + +- `.pfx` 文件:包含证书和私钥,适合导入到 IIS 等 Windows 服务。 +- `.pem` 文件:可用于 Nginx 等服务器。 + +##### 处理客户问题 + +- EasyNvr7.3.8版本更新会失败 +- 鉴权问题登录会返回一个验证 ,然后用这个验证去做直播预览处理 +- 第三方鉴权 + - 三方鉴权返回200 但是接口返回未鉴权 + +### 学了什么 + +- 无 diff --git a/技术支持/通道名字带不出来.png b/技术支持/图片/通道名字带不出来.png similarity index 100% rename from 技术支持/通道名字带不出来.png rename to 技术支持/图片/通道名字带不出来.png diff --git a/技术支持/技术支持文档.md b/技术支持/技术支持文档.md index 3f384d6..7b85a77 100644 --- a/技术支持/技术支持文档.md +++ b/技术支持/技术支持文档.md @@ -11,4 +11,4 @@ - **海康设备用onvif协议带不出通道名**---EasyNVR交流群(客户:我的世界叫你) - 可以使用onvif device manager查看通道名称 - 或者使用抓包软件抓取读取的通道信息看是否一致 - - ![通道名字带不出来](D:\日报\zhaowei\技术支持\通道名字带不出来.png) \ No newline at end of file + - ![通道名字带不出来](D:\日报\zhaowei\技术支持\图片\通道名字带不出来.png) \ No newline at end of file diff --git a/技术支持/证书获取方法.md b/技术支持/证书获取方法.md index 5468600..fe10043 100644 --- a/技术支持/证书获取方法.md +++ b/技术支持/证书获取方法.md @@ -1,9 +1,7 @@ +# 在 Ubuntu系统上: + ## 1.安装 Certbot -Certbot 是 Let's Encrypt 推荐的客户端,用于自动化证书的获取和续期。 - -#### 在 Ubuntu系统上: - ```shell bash sudo apt update @@ -13,35 +11,76 @@ sudo apt install python3-certbot-nginx # 安装certbot-Nginx插件 ## 2. 生成 SSL 证书 -Certbot 需要在服务器上通过 HTTP 或 DNS 验证域名所有权。 - -#### 使用 Nginx 进行自动配置 - -如果你使用的是 Nginx 服务器,可以通过 Certbot 自动配置 SSL 证书。 +#### 2.1使用 Nginx 进行自动配置 ```shell bash 复制代码 -sudo certbot --nginx -d example.com -d www.example.com +sudo certbot --nginx -d example.com ``` -- -- `-d example.com -d www.example.com` 是你要为其申请证书的域名。 +- `-d example.com 是你要为其申请证书的域名。 - Certbot 会自动配置 Nginx,使得你的站点使用 HTTPS 协议。 -#### 手动获取证书 +#### 2.2使用 Nginx 仅获取证书(手动配置) + +如果您只想获取证书而不让 Certbot 自动配置 Nginx,可以使用以下命令: + +```shell +bash +复制代码 +sudo certbot certonly --nginx +``` + +证书文件生成后,默认保存路径为: + +- **证书文件**:`/etc/letsencrypt/live/example.com/fullchain.pem` +- **私钥文件**:`/etc/letsencrypt/live/example.com/privkey.pem` + +#### 2.3手动获取证书 如果你没有使用自动配置工具,或者使用其他类型的 Web 服务器,你可以手动获取证书。 ```shell bash 复制代码 -sudo certbot certonly --manual -d example.com -d www.example.com +sudo certbot certonly --manual -d example.com ``` Certbot 会引导你通过 DNS 或 HTTP 验证来证明你拥有域名的所有权。 -- 手动获取证书后 +#### 2.4使用 Standalone 模式获取证书 + +如果您的服务器没有运行 Nginx,或您暂时关闭了 Nginx 服务,可以使用 Standalone 模式获取证书: + +##### 停止 Nginx 服务: + +```shell +bash +复制代码 +sudo systemctl stop nginx +``` + +##### 获取证书: + +```shell +bash +复制代码 +sudo certbot certonly --standalone -d example.com +``` + +- `-d` 参数指定域名。 +- Certbot 会启动一个临时的 HTTP 服务器,监听 80 端口,用于域名验证。 + +##### 启动 Nginx 服务: + +完成证书生成后,重新启动 Nginx: + +```shell +bash +复制代码 +sudo systemctl start nginx +``` ### 3. 验证证书获取成功 @@ -74,7 +113,7 @@ sudo vi /etc/nginx/sites-available/default #具体看你nginx的配置文件路 ```shell server { listen 80; - server_name example.com www.example.com; + server_name example.com; # HTTP 到 HTTPS 的重定向 return 301 https://$host:服务端口$request_uri; #如果要重定向注意是https } @@ -93,3 +132,91 @@ server { } ``` +### 5.配置自动续期 + +Let's Encrypt 证书有效期为 90 天。要避免证书过期,可以设置自动续期任务。 + +运行以下命令测试续期是否正常: + +```shell +bash +复制代码 +sudo certbot renew --dry-run +``` + +添加一个 cron 任务定期检查续期: + +```shell +bash +复制代码 +sudo crontab -e +``` + +添加以下内容: + +```shell +bash +复制代码 +0 0 * * * certbot renew --quiet && systemctl reload nginx +``` + +# 在windows系统下 + +### 使用 win-acme 获取证书 + +#### 1: 下载 win-acme + +1. 访问 win-acme 的 [GitHub 页面](https://github.com/win-acme/win-acme)。 +2. 下载最新版本的 ZIP 文件(通常是 `wacs-x.x.x.xxx.zip`)。 +3. 解压到一个文件夹,例如 `C:\win-acme\`。 + +#### 2: 运行 win-acme + +1. 打开命令提示符(以管理员身份运行)。 + +2. 导航到 win-acme 文件夹: + + ```cmd + cmd + 复制代码 + cd C:\win-acme + ``` + +3. 运行主程序: + + ```cmd + cmd + 复制代码 + wacs.exe + ``` + +#### 3: 配置证书 + +运行 `wacs.exe` 后,您会看到一个交互式菜单,按照提示操作: + +1. **选择选项**:选择 `N` 以创建新的 HTTPS 绑定。 + +2. **输入域名**:输入要申请证书的域名(如 `example.com`)。 + +3. **验证域名** + + :**选择验证方式**: + + - **HTTP-01 验证**:确保域名指向服务器的公网 IP,并且可以通过 80 端口访问。 + - **DNS-01 验证**:需要配置 DNS TXT 记录(适合无 80 端口访问的情况)。 + +4. **证书生成**:成功验证后,win-acme 会自动生成证书。 + +#### 4: 配置证书路径 + +win-acme 生成的证书路径通常位于: + +```cmd +复制代码 +C:\ProgramData\win-acme\acme-v02.api.letsencrypt.org\Certificates +``` + +证书文件包括: + +- `.pfx` 文件:包含证书和私钥,适合导入到 IIS 等 Windows 服务。 +- `.pem` 文件:可用于 Nginx 等服务器。