本文介绍如何在宝塔面板配置SSL证书,以及如何验证安装结果。配置完成后,您可以通过 HTTPS 加密通道安全访问应用,确保数据传输安全。
前提条件
操作步骤
步骤一:下载SSL证书和私钥文件
步骤二:开放安全组和防火墙的443端口
启用SSL证书以支持 HTTPS 访问前,需确保 HTTPS 端口(默认 443)已开放,否则将无法通过 HTTPS 访问网站。
开放443端口
如果使用非标准端口运行 HTTPS,请开放对应的端口。
Linux
在服务器终端执行以下命令,检测443端口的开放情况:
RHEL/CentOS
command -v nc > /dev/null 2>&1 || sudo yum install -y nc # 请将以下的 <当前服务器的公网 IP> 替换为当前服务器的公网 IP sudo ss -tlnp | grep -q ':443 ' || sudo nc -l 443 & sleep 1; nc -w 3 -vz <当前服务器的公网 IP> 443如果输出
Ncat: Connected to <当前服务器公网 IP>:443,则表明443端口已开放。否则需在安全组和防火墙中开放443端口。Debian/Ubuntu
command -v nc > /dev/null 2>&1 || sudo apt-get install -y netcat # 请将以下的 <当前服务器的公网 IP> 替换为当前服务器的公网 IP sudo ss -tlnp | grep -q ':443 ' || sudo nc -l -p 443 & sleep 1; nc -w 3 -vz <当前服务器的公网 IP> 443若输出
Connection to <当前服务器公网 IP> port [tcp/https] succeeded!或[<当前服务器公网 IP>] 443 (https) open,则表明443端口已开放。否则需在安全组和防火墙中开放443端口。在安全组配置开放443端口。
请确保安全组已开放 443 端口 (TCP),否则外部无法访问服务。以下操作以阿里云 ECS 为例:
在防火墙中开放443端口。
执行以下命令,识别系统当前的防火墙服务类型:
if command -v systemctl >/dev/null 2>&1 && systemctl is-active --quiet firewalld; then echo "firewalld" elif command -v ufw >/dev/null 2>&1 && sudo ufw status | grep -qw active; then echo "ufw" elif command -v nft >/dev/null 2>&1 && sudo nft list ruleset 2>/dev/null | grep -q 'table'; then echo "nftables" elif command -v systemctl >/dev/null 2>&1 && systemctl is-active --quiet iptables; then echo "iptables" elif command -v iptables >/dev/null 2>&1 && sudo iptables -L 2>/dev/null | grep -qE 'REJECT|DROP|ACCEPT'; then echo "iptables" else echo "none" fi若输出为
none,则无需进一步操作。否则,请根据输出的类型(firewalld、ufw、nftables、iptables),执行以下命令开放 443 端口:firewalld
sudo firewall-cmd --permanent --add-port=443/tcp && sudo firewall-cmd --reloadufw
sudo ufw allow 443/tcpnftables
sudo nft add table inet filter 2>/dev/null sudo nft add chain inet filter input '{ type filter hook input priority 0; }' 2>/dev/null sudo nft add rule inet filter input tcp dport 443 counter accept 2>/dev/nulliptables
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT为避免 iptables 规则在系统重启后失效,请执行以下命令持久化 iptables 规则:
RHEL/CentOS sudo yum install -y iptables-services sudo service iptables saveDebian/Ubuntu sudo apt-get install -y iptables-persistent sudo iptables-save | sudo tee /etc/iptables/rules.v4 >/dev/null
Windows
步骤三:登录宝塔面板安装SSL证书
-
在浏览器中登录宝塔面板。
说明如果无法登录宝塔面板,可参考无法访问宝塔面板的排查思路寻求解决方案。
如果忘记宝塔面板地址或账号密码,可通过以下方式找回:
-
登录后,在左侧导航栏单击网站,找到目标网站,在SSL证书列单击未部署。
-
在本地使用文本编辑器打开步骤一中保存的证书文件(
.pem)和私钥文件(.key),复制全部内容并粘贴到对应的输入框中。 -
(可选)开启强制HTTPS:在步骤3的配置页面中,单击强制HTTPS开关。
网站绑定 HTTPS 后,系统默认同时保留 HTTP 访问通道。直接移除 HTTP 可能导致依赖 HTTP 协议的用户无法正常访问。开启强制 HTTPS 后,所有 HTTP 请求将自动跳转至 HTTPS,既保障访问连续性,又确保通信安全。
-
单击保存并启用证书。完成后,页面将显示证书的有效期。
步骤四:验证SSL证书是否配置成功
-
在浏览器中通过 HTTPS 访问已绑定证书的域名,例如
https://yourdomain.com(需将yourdomain.com替换为您的实际域名)。 -
如果浏览器地址栏显示安全锁图标,说明证书已成功部署。如果访问异常或未显示安全锁,请先清除浏览器缓存或使用无痕(隐私)模式重试;如果问题仍然存在,请参考常见问题进行排查。
说明Chrome 浏览器自 117 版本起,地址栏中的
已被新的
替代,需单击该图标后查看安全锁信息。单击后弹窗中将显示连接是安全的,表示该网站已启用 HTTPS 安全连接。
后续步骤(可选)
开启域名监控
建议在证书部署完成后,为域名开启域名监控功能。系统将自动检测证书有效期,并在到期前发送提醒,帮助您及时续期,避免服务中断。具体操作请参见购买并开启公网域名监控。
常见问题
安装或更新证书后,证书未生效或HTTPS无法访问
常见原因如下:
浏览器存在缓存。请清除浏览器缓存后访问,或使用无痕(隐私)模式访问。
-
域名未完成备案。请参见如何查看域名解析记录以及 ICP 备案信息。
-
服务器安全组或防火墙未开放 443 端口。请参见开放安全组和防火墙的443端口。
-
证书的绑定域名未包含当前访问的域名。请参见如何判断绑定域名是否已匹配所有需保护的域名。
域名已接入 CDN、SLB 或 WAF 等云产品,但未在相应产品中安装证书。请参阅流量经过多个云产品时证书的部署位置完成相关操作。
当前域名的 DNS 解析指向多台服务器,但证书仅在部分服务器上安装。需分别在每个服务器中安装证书。
如需进一步排查,请参考:根据浏览器错误提示解决证书部署问题 和 SSL证书部署故障自助排查指南。
如何在宝塔面板中更新(替换)SSL证书?
-
将新的 SSL 证书(
.pem文件)和私钥(.key文件)下载到本地。 -
在宝塔面板左侧导航栏,单击网站。找到目标网站,在操作列单击设置。
-
在站点修改弹窗中,单击左侧导航栏的SSL。
-
在证书内容区域,将新证书的内容覆盖至对应的文本框中。
-
将
.key文件中的内容复制并替换宝塔面板中密钥(KEY)文本框中的内容。 -
将
.pem文件中的内容复制并替换宝塔面板中证书(PEM 格式)文本框中的内容。
-
-
单击保存。
