动手做系列:使用Apache2服务器,通过Let's Encrypt申请网站免费https证书:修订间差异

来自程序员技术小站
跳转到导航 跳转到搜索
Admin留言 | 贡献
创建页面,内容为“目前大家常用的浏览器都已经默认使用https打开网页了,根本原因就是http已经越来越不安全, 所以在部署网站时还是尽量使用https来搭建自己的服务器,而https使用的证书,如果通过阿里或其它云商少则几百,多则上千。'''Let's Encrypt''' 是一个 '''免费的、自动化的、开放的证书颁发机构''',旨在让所有网站都能轻松实现 '''HTTPS 加密''',保障用户数据的…”
 
Admin留言 | 贡献
 
(未显示同一用户的2个中间版本)
第24行: 第24行:


=== 第五步 修改default-ssl.conf,修改 SSL 配置文件。 ===
=== 第五步 修改default-ssl.conf,修改 SSL 配置文件。 ===
<code>'''SSLCertificateFile /etc/letsencrypt/live/YOUR_DOMAIN/cert.pem
  '''SSLCertificateFile /etc/letsencrypt/live/YOUR_DOMAIN/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/YOUR_DOMAIN/privkey.pem
  '''SSLCertificateKeyFile /etc/letsencrypt/live/YOUR_DOMAIN/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/YOUR_DOMAIN/chain.pem'''</code>
  SSLCertificateChainFile /etc/letsencrypt/live/YOUR_DOMAIN/chain.pem
替换上文中的YOUR_DOMAIN为你的域名。
替换上文中的YOUR_DOMAIN为你的域名。


第36行: 第36行:


=== 第八步 输入 vi 000-default.conf,设置重定向到 HTTPS ===
=== 第八步 输入 vi 000-default.conf,设置重定向到 HTTPS ===
  <code>'''RewriteEngine on'''
  <'''RewriteEngine on'''</code>
  '''RewriteCond  %{HTTPS} !=on
 
  RewriteRule  ^(.*)  <nowiki>https://%{SERVER_NAME}$1</nowiki> [L,R]'''</code>
  <code>'''RewriteCond  %{HTTPS} !=on'''</code>
 
  <code>'''RewriteRule  ^(.*)  <nowiki>https://%{SERVER_NAME}$1</nowiki> [L,R]'''</code>


=== 第九步 保存并重启Apache2服务器 ===
=== 第九步 保存并重启Apache2服务器 ===
  <code>'''a2enmod rewrite && service apache2 restart'''</code>
  <code>'''a2enmod rewrite && service apache2 restart'''</code>


=== 第十步 输入 certbot certificates 查看证书有效日期。 ===
=== 第十步 输入 sudo certbot certificates 查看证书有效日期。 ===


=== 第十一步、打开网址,发现https页面打开成功 ===
=== 第十一步 打开网址,发现https页面打开成功 ===

2025年12月30日 (二) 08:53的最新版本

目前大家常用的浏览器都已经默认使用https打开网页了,根本原因就是http已经越来越不安全, 所以在部署网站时还是尽量使用https来搭建自己的服务器,而https使用的证书,如果通过阿里或其它云商少则几百,多则上千。Let's Encrypt 是一个 免费的、自动化的、开放的证书颁发机构,旨在让所有网站都能轻松实现 HTTPS 加密,保障用户数据的安全。它由非盈利组织互联网安全研究小组 (ISRG) 提供,简化了网站开启 HTTPS 的流程。使用 Let's Encrypt,网站管理员可以免费申请 SSL/TLS 证书,从而提升网站的安全性。

本文介绍如何在Ubuntu22 Apache2服务器下配置Let's Encrypt证书,使网站支持https。

本文默认用户已经具有部署支持了http协议的服务器。

第一步 安裝 certbot 套件

pt update
apt -y install certbot
apt -y install python3-certbot-apache

第二步 检查 apache 2外挂使否安裝成功

第三步 通过certbot 申请证书

第三步 通过 certbot 申请证书

certbot certonly --apache -w /var/www/html/ -d YOUR_DOMAIN --email YOUR_MAIL

替换上文中的YOUR_DOMAIN 为你的域名和YOUR_MAIL为你的邮箱地址。如果网站所在的本地文件夹路径不在/var/www/html,也要修改 -w 后面的参数。

第四步 进入 /etc/apache2/sites-available/ 文件夹。

cd /etc/apache2/sites-available/

第五步 修改default-ssl.conf,修改 SSL 配置文件。

 SSLCertificateFile /etc/letsencrypt/live/YOUR_DOMAIN/cert.pem
 SSLCertificateKeyFile /etc/letsencrypt/live/YOUR_DOMAIN/privkey.pem
 SSLCertificateChainFile /etc/letsencrypt/live/YOUR_DOMAIN/chain.pem

替换上文中的YOUR_DOMAIN为你的域名。

第六步 建立 SSL 配置文件软链接

ln -s ../sites-available/default-ssl.conf /etc/apache2/sites-enabled/000-default-ssl.conf

第七步 启用 SSL

a2enmod ssl

第八步 输入 vi 000-default.conf,设置重定向到 HTTPS

<RewriteEngine on
RewriteCond   %{HTTPS} !=on
RewriteRule   ^(.*)  https://%{SERVER_NAME}$1 [L,R]

第九步 保存并重启Apache2服务器

a2enmod rewrite && service apache2 restart

第十步 输入 sudo certbot certificates 查看证书有效日期。

第十一步 打开网址,发现https页面打开成功