侧边栏壁纸
博主头像
拾荒的小海螺博主等级

只有想不到的,没有做不到的

  • 累计撰写 222 篇文章
  • 累计创建 19 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

Nginx:利用 FreeSSL 申请(Https)免费证书的技术指南

拾荒的小海螺
2024-11-01 / 0 评论 / 0 点赞 / 14 阅读 / 5256 字

1、简述

在现代互联网应用中,使用 HTTPS 连接是确保数据传输安全的基本需求。SSL/TLS 证书能够加密客户端与服务器之间的通信,防止中间人攻击等安全隐患。而许多开发者和小型企业可能会担心 SSL 证书的费用问题。幸运的是,FreeSSL 提供了一个简单易用的平台,允许我们申请免费的 SSL 证书。本文将详细介绍如何使用 FreeSSL 申请免费 SSL 证书,并在你的服务器上安装它。

image-dpxl.png

2、申请证书的步骤

FreeSSL 是一个 SSL 证书申请平台,基于 Let's Encrypt 提供的免费 SSL 证书服务。它简化了证书申请流程,让开发者和网站管理员更轻松地获取和安装 SSL 证书,保障网站的安全性。

2.1 注册并登录 FreeSSL 网站

首先,访问 FreeSSL 网站,注册一个账号并登录。如果你已经有账号,可以直接登录。

image-kaar.png

2.2 域名授权

在证书自动化里面,选择“域名授权”,点击“添加域名”。

image-kdaz.png

2.3 域名验证

前往域名托管商(阿里云、腾讯云等),添加解析记录,填入验证信息,点击提交:

image-vcua.png

进入 FreeSSL 平台,点击“配置完成,立即检测”,域名状态显示“验证通过”。

2.4 申请证书

域名验证成功后,FreeSSL 会生成 SSL 证书。你可以下载证书文件,一般包含以下内容:

  • 证书文件 (CRT):主 SSL 证书。
  • 中间证书 (CA Bundle):中间证书链。
  • 私钥 (Private Key):证书对应的私钥。

image-qefy.png

在您的机器上安装ACME客户端:acme.sh,可以通过官方地址下载:

curl https://get.acme.sh | sh -s email=my@example.com

或者通过备用地址下载:

curl https://gitcode.net/cert/cn-acme.sh/-/raw/master/install.sh?inline=false | sh -s email=my@example.com

安装完成后,通过以上申请证书指令申请证书:

./acme.sh --issue -d tt-ww.cn --dns dns_dp --server https://acme.freessl.cn/v2/DV90/directory/w0gifyt89fip1jnk6bmw

3、安装 SSL 证书

根据你使用的服务器环境,安装 SSL 证书的方式会有所不同。这里以 NGINX 和 Apache 为例,介绍如何配置这些证书。

3.1 NGINX 安装 SSL 证书

将下载的证书文件和私钥文件上传到服务器的指定目录。例如 /etc/nginx/ssl/:

./acme.sh --install-cert -d lsk-ww.cn --key-file /etc/nginx/ssl/tt-ww.key --fullchain-file /etc/nginx/ssl/tt-ww.pem --reloadcmd "docker restart nginx"

根据证书的位置来更改NGINX的配置文件:

server {
  listen 443 ssl;
  server_name tt-ww.cn www.tt-ww.cn;
  ssl_certificate      /usr/local/nginx/ssl/tt-ww.pem;
     ssl_certificate_key  /usr/local/nginx/ssl/tt-ww.key;
     ssl_session_cache    shared:SSL:1m;
     ssl_session_timeout  5m;
     ssl_ciphers  HIGH:!aNULL:!MD5;
     ssl_prefer_server_ciphers  on;

  client_max_body_size 1024m;
  location / {
	proxy_pass http://halo;
	proxy_set_header HOST $host;
	proxy_set_header X-Forwarded-Proto $scheme;
	proxy_set_header X-Real-IP $remote_addr;
	proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  }
}

编辑好配置,保存重启NGINX,要确认当前证书路径是否有映射到容器中:

docker run -d -p 80:80 -p 443:443 --name nginx \
-v /etc/nginx/www:/usr/share/nginx/html \
-v /etc/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /etc/nginx/logs:/var/log/nginx \
-v /etc/nginx/ssl:/usr/local/nginx/ssl \
nginx:latest

#重启nginx
sudo systemctl reload nginx

3.2 Apache 安装 SSL 证书

将证书文件和私钥上传到服务器,例如 /etc/apache2/ssl/,编辑 Apache 配置文件:

<VirtualHost *:443>
    ServerName yourdomain.com

    SSLEngine on
    SSLCertificateFile /etc/apache2/ssl/tt-ww.crt
    SSLCertificateKeyFile /etc/apache2/ssl/tt-ww.key
    SSLCertificateChainFile /etc/apache2/ssl/ca_bundle.crt

    # 其他配置
</VirtualHost>

保存并重新加载 Apache 配置:

sudo apachectl configtest
sudo systemctl reload apache2

4、证书自动续期

Let's Encrypt 的免费证书有效期为 90 天,因此你需要确保证书能及时续期。FreeSSL 提供了自动续期功能,但你也可以手动使用 Certbot 来配置自动续期任务。

安装 Certbot:

sudo apt install certbot

certbot 申请证书命令:

certbot certonly --work-dir $(pwd) --logs-dir $(pwd) --config-dir $(pwd)  --manual tt-ww.cn --server https://acme.freessl.cn/v2/DV90/directory/w0gifyt89fip1jnk6bmw

配置自动续期任务:

sudo certbot renew --dry-run

5、总结

通过 FreeSSL 申请免费的 SSL 证书是一个简便、有效的方式,不仅能节省费用,还能提高网站的安全性。在本文中,我们详细介绍了如何通过 FreeSSL 申请证书,并在 NGINX 和 Apache 服务器上安装它。希望这篇指南能帮助你轻松完成 SSL 证书的申请与配置。

0

评论区