logo

全站HTTPS升级系列之二:基于acme.sh从Letsencrypt生成免费的泛域名证书

作者:沙与沫2024.01.08 14:45浏览量:12

简介:本文将介绍如何使用acme.sh脚本和Letsencrypt服务生成免费的泛域名证书,从而实现全站HTTPS升级。我们将分步骤详细解释整个过程,并提供常见问题的解决方案,让您轻松完成证书的申请和部署。

在全站HTTPS升级系列的前一篇文章中,我们介绍了HTTPS的基本概念和优势,以及如何选择合适的证书颁发机构(CA)。接下来,我们将重点介绍如何使用acme.sh脚本和Letsencrypt服务生成免费的泛域名证书。
一、准备工作
在开始之前,请确保您的服务器已安装以下软件:

  1. acme.sh脚本:这是一个用于处理Letsencrypt证书的开源脚本。您可以从GitHub上获取最新版本的脚本:https://github.com/acme-tiny/acme.sh
  2. OpenSSL:这是一个强大的加密工具,用于生成自签名证书或与CA交互。大多数Linux发行版默认已安装OpenSSL。
    二、安装acme.sh脚本
  3. 下载acme.sh脚本并解压:
    1. cd /root
    2. wget https://github.com/acme-tiny/acme.sh/releases/download/v最新版本号/acme.sh
    3. chmod +x acme.sh
  4. 初始化脚本:
    1. ./acme.sh --install
  5. 运行脚本检查是否安装成功:
    1. ./acme.sh --version
    如果出现版本信息,表示安装成功。
    三、生成密钥和CSR(证书签名请求)
  6. 生成密钥:
    1. openssl genrsa 2048 > private.key
  7. 生成CSR:
    1. openssl req -new -key private.key -out server.csr
    根据提示输入相关信息(如国家、组织、常用名等)。
    四、提交CSR并获取证书
  8. 运行acme.sh脚本提交CSR:
    1. ./acme.sh --issue -d 域名 --cert-home /root/ssl --account-key /root/private.key -k /root/server.csr
    将“域名”替换为您的域名或域名列表,例如“example.com”、“www.example.com”。此命令将提交CSR并获取证书。
  9. 获取证书文件:证书文件将保存在/root/ssl目录下。默认情况下,证书文件名为“fullchain.cer”。
    五、部署证书
  10. 将证书文件复制到服务器上的适当位置,例如/etc/nginx/ssl。如果您使用的是其他Web服务器(如Apache),请将证书文件复制到相应的目录。
  11. 根据您使用的Web服务器配置文件,将证书文件添加到配置中,并启用HTTPS监听端口。例如,对于Nginx服务器,您需要编辑Nginx配置文件(通常位于/etc/nginx/nginx.conf或/etc/nginx/conf.d/default.conf),添加以下内容:
    ```bash
    server {
    listen 443 ssl;
    server_name 域名;
    ssl_certificate /etc/nginx/ssl/fullchain.cer;
    ssl_certificate_key /etc/nginx/ssl/private.key;

    其他配置项…

    }
    ```请将“域名”替换为您的域名或域名列表。确保将证书文件的路径和密钥文件的路径更改为实际路径。
  12. 重新加载Nginx配置以使更改生效:
    bash nginx -t nginx -s reload如果您使用的是其他Web服务器,请根据其文档重新加载配置。
  13. 现在,您的服务器已经成功配置为使用HTTPS协议,并且可以安全地通过浏览器访问您的网站了。请确保在浏览器地址栏中查看网址以确保已启用HTTPS协议。六、常见问题及解决方案在生成和部署证书的过程中,可能会遇到一些常见问题。以下是几个常见问题的解决方案:1. 问题:出现“您的申请与现有冲突”错误解决方案:请确保您在申请证书时使用的域名和域名列表是唯一的,并且与现有证书或其他申请不冲突。2. 问题:出现“验证失败”错误解决方案

相关文章推荐

发表评论