zhaowei/技术支持/证书获取方法.md
2024-12-30 17:46:00 +08:00

4.9 KiB
Raw Blame History

在 Ubuntu系统上

1.安装 Certbot

bash
sudo apt update
sudo apt install certbot #安装certbot
sudo apt install python3-certbot-nginx  # 安装certbot-Nginx插件

2. 生成 SSL 证书

2.1使用 Nginx 进行自动配置

bash
复制代码
sudo certbot --nginx -d example.com
  • `-d example.com 是你要为其申请证书的域名。
  • Certbot 会自动配置 Nginx使得你的站点使用 HTTPS 协议。

2.2使用 Nginx 仅获取证书(手动配置)

如果您只想获取证书而不让 Certbot 自动配置 Nginx可以使用以下命令

bash
复制代码
sudo certbot certonly --nginx

证书文件生成后,默认保存路径为:

  • 证书文件/etc/letsencrypt/live/example.com/fullchain.pem
  • 私钥文件/etc/letsencrypt/live/example.com/privkey.pem

2.3手动获取证书

如果你没有使用自动配置工具,或者使用其他类型的 Web 服务器,你可以手动获取证书。

bash
复制代码
sudo certbot certonly --manual -d example.com

Certbot 会引导你通过 DNS 或 HTTP 验证来证明你拥有域名的所有权。

2.4使用 Standalone 模式获取证书

如果您的服务器没有运行 Nginx或您暂时关闭了 Nginx 服务,可以使用 Standalone 模式获取证书:

停止 Nginx 服务:
bash
复制代码
sudo systemctl stop nginx
获取证书:
bash
复制代码
sudo certbot certonly --standalone -d example.com 
  • -d 参数指定域名。
  • Certbot 会启动一个临时的 HTTP 服务器,监听 80 端口,用于域名验证。
启动 Nginx 服务:

完成证书生成后,重新启动 Nginx

bash
复制代码
sudo systemctl start nginx

3. 验证证书获取成功

证书获取成功后,证书文件通常存储在 /etc/letsencrypt/live/ 目录下。

bash
ls /etc/letsencrypt/live/example.com/

你应该能看到 fullchain.pemprivkey.pem 文件:

  • fullchain.pem 是完整的证书链文件(包括根证书和中间证书)。
  • privkey.pem 是私钥文件。

4. 配置 Web 服务器使用证书

Nginx 配置示例:

编辑你的 Nginx 配置文件:

bash
复制代码
sudo vi /etc/nginx/sites-available/default #具体看你nginx的配置文件路径

修改或添加以下配置来启用 HTTPS

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 天。要避免证书过期,可以设置自动续期任务。

运行以下命令测试续期是否正常:

bash
复制代码
sudo certbot renew --dry-run

添加一个 cron 任务定期检查续期:

bash
复制代码
sudo crontab -e

添加以下内容:

bash
复制代码
0 0 * * * certbot renew --quiet && systemctl reload nginx

在windows系统下

使用 win-acme 获取证书

1: 下载 win-acme

  1. 访问 win-acme 的 GitHub 页面
  2. 下载最新版本的 ZIP 文件(通常是 wacs-x.x.x.xxx.zip)。
  3. 解压到一个文件夹,例如 C:\win-acme\

2: 运行 win-acme

  1. 打开命令提示符(以管理员身份运行)。

  2. 导航到 win-acme 文件夹:

    cmd
    复制代码
    cd C:\win-acme
    
  3. 运行主程序:

    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 生成的证书路径通常位于:

复制代码
C:\ProgramData\win-acme\acme-v02.api.letsencrypt.org\Certificates

证书文件包括:

  • .pfx 文件:包含证书和私钥,适合导入到 IIS 等 Windows 服务。
  • .pem 文件:可用于 Nginx 等服务器。