# 在 Ubuntu系统上: ## 1.安装 Certbot ```shell bash sudo apt update sudo apt install certbot #安装certbot sudo apt install python3-certbot-nginx # 安装certbot-Nginx插件 ``` ## 2. 生成 SSL 证书 #### 2.1使用 Nginx 进行自动配置 ```shell bash 复制代码 sudo certbot --nginx -d 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 ``` 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. 验证证书获取成功 证书获取成功后,证书文件通常存储在 `/etc/letsencrypt/live/` 目录下。 ```shell bash ls /etc/letsencrypt/live/example.com/ ``` 你应该能看到 `fullchain.pem` 和 `privkey.pem` 文件: - `fullchain.pem` 是完整的证书链文件(包括根证书和中间证书)。 - `privkey.pem` 是私钥文件。 ### 4. 配置 Web 服务器使用证书 #### Nginx 配置示例: 编辑你的 Nginx 配置文件: ```shell bash 复制代码 sudo vi /etc/nginx/sites-available/default #具体看你nginx的配置文件路径 ``` 修改或添加以下配置来启用 HTTPS: ```shell server { listen 80; server_name example.com; # HTTP 到 HTTPS 的重定向 return 301 https://$host:服务端口$request_uri; #如果要重定向注意是https } server { listen 80; listen 443 ssl; server_name example.com www.example.com; ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; #获取到证书的位置 ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;#获取到私钥的位置 # SSL 配置(根据需要调整) ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers 'TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384'; # 网站的其他配置... } ``` ### 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 等服务器。