前言:为什么你的网站需要HTTPS
在当今互联网环境中,网站安全性已成为用户信任的基石。HTTP协议以明文方式传输数据,面临着信息泄露、内容篡改、中间人攻击等严重安全风险。主流浏览器会对未启用HTTPS的网站标记为“不安全”,直接影响用户访问意愿和搜索引擎排名。为Web服务器配置HTTPS证书,不仅能够加密数据传输、保障用户隐私安全,还能提升网站的专业形象和SEO权重。
SSL(Secure Sockets Layer)及其后继者TLS(Transport Layer Security)是一种加密协议,用于在客户端与服务器之间建立安全的通信通道。SSL证书由CA(证书颁发机构)签发,包含网站的公钥、域名信息、颁发机构及有效期等数据。当用户通过HTTPS访问网站时,浏览器会验证证书的合法性,并与服务器协商加密密钥,从而确保数据传输的机密性和完整性。
第一章:阿里云SSL证书类型与选型
阿里云数字证书管理服务(原SSL证书服务)提供多种类型的SSL证书,主要分为以下几类:
1.1 个人测试证书(免费版)
由DigiCert颁发,为DV(域名验证型)单域名证书。每个阿里云账号在一个自然年内可免费领取20张,有效期90天(3个月)。适合个人博客、开发测试环境等非生产场景。免费版SSL证书到期后不支持续费,需要重新申请。
1.2 个人测试证书(Pro)
付费版本,有效期12个月,提供更长的证书周期和更多的技术支撑。
1.3 正式证书
包括DV、OV(组织验证型)、EV(扩展验证型)等多种级别,支持单域名、多域名和通配符域名,有效期通常为1年。适用于企业官网、电商平台、金融系统等对安全要求较高的生产环境。
DV证书仅验证域名所有权,签发速度快(1~15分钟),价格较低。OV证书需要验证企业真实性,证书中显示企业信息,签发时长约5个自然日。EV证书为最高级别验证,提供最高信任度,签发时长约5个自然日。
对于大多数个人站长和中小企业,个人测试证书(免费版)已能满足基本的HTTPS加密需求。如需更长的有效期或更高的安全级别,可考虑购买付费证书。
需要先登录阿里云控制台,点击:阿里云控制台
第二章:申请SSL证书
2.1 准备工作
在申请SSL证书之前,需要完成以下准备工作:
- 已完成阿里云账号的实名认证
- 拥有一个已备案的域名(如服务器位于中国内地)
- 域名已添加DNS解析记录,指向服务器的公网IP地址
- 已在服务器安全组中放行443端口
2.2 申请个人测试证书(免费版)
步骤一:进入数字证书管理服务控制台
登录阿里云控制台,在顶部搜索框输入“SSL证书”或“数字证书管理服务”,进入证书管理页面。
步骤二:领取免费证书额度
在左侧导航栏选择“证书管理”>“SSL证书管理”,点击“个人测试证书(原免费证书)”页签,然后点击“立即购买”。在购买面板中保持默认选项,勾选服务协议后完成0元支付。
步骤三:创建证书并提交申请
在“个人测试证书”页签点击“创建证书”,填写以下信息:
- 域名名称:输入需要绑定证书的域名,例如example.com。系统会自动包含www.example.com的SAN扩展
- 域名验证方式:可选择“自动DNS验证”、“手动DNS验证”或“文件验证”
如果域名的DNS解析服务在当前阿里云账号下,系统会自动匹配自动DNS验证方式,提交审核后无需手动操作,只需等待证书签发即可。如果域名DNS解析不在当前账号下,则需要选择手动DNS验证或文件验证。
2.3 申请正式证书
步骤一:购买正式SSL证书
在正式证书页签,单击“立即购买”进入购买页面。参考以下配置选择证书规格:
- 域名类型:选择单域名、通配符域名或多域名
- 品牌:可选择Alibaba Cloud等品牌
- 证书类型:DV、OV或EV
- 服务年限:选择1年或更长
步骤二:申请SSL证书
购买完成后,在正式证书页签的操作列,单击“证书申请”。填写证书绑定域名、域名验证方式、联系人信息等,OV/EV证书还需填写企业信息。确认信息无误后提交审核。
第三章:下载SSL证书
证书签发后,需要下载证书文件以便部署到服务器。操作步骤如下:
- 登录数字证书管理服务控制台
- 在左侧导航栏选择“证书管理”>“SSL证书管理”
- 找到审核通过的证书,点击“下载”按钮
- 根据服务器类型选择对应的证书格式:Nginx、Tomcat、Apache、IIS、JKS等
- 点击“下载”按钮,下载证书压缩包
不同服务器类型下载的证书格式不同:
- Nginx:包含.pem证书文件和.key私钥文件
- Tomcat:包含.pfx或.jks证书文件以及.txt密码文件
- IIS:包含PFX格式证书文件和TXT密码文件
第四章:Nginx服务器部署SSL证书
4.1 准备证书文件
在SSL证书管理页面,下载服务器类型为Nginx的证书。解压下载的证书压缩包,会得到证书文件(.pem)和私钥文件(.key)。将解压后的证书文件和私钥文件上传至服务器,并存放在安全目录(如/etc/ssl/cert目录)。
4.2 配置Nginx
编辑Nginx配置文件。在Linux系统中,配置文件通常位于/etc/nginx/conf.d/目录下,或直接编辑/etc/nginx/nginx.conf。添加以下配置:
server {
listen 443 ssl;
server_name example.com;
ssl_certificate /etc/ssl/cert/example.com.pem;
ssl_certificate_key /etc/ssl/cert/example.com.key;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
location / {
root /var/www/html;
index index.html index.htm;
}
}
其中ssl_certificate指向证书文件(.pem),ssl_certificate_key指向私钥文件(.key)。配置文件中指定的路径必须与服务器上实际存放证书文件的路径完全一致。
4.3 配置HTTP自动跳转HTTPS
为了强制所有HTTP流量重定向到HTTPS,可以添加以下配置:
server {
listen 80;
server_name example.com;
return 301 https://$server_name$request_uri;
}
4.4 验证配置并重启Nginx
执行以下命令验证配置文件语法是否正确:
sudo nginx -t
验证通过后,重新加载Nginx配置:
sudo nginx -s reload
第五章:Tomcat服务器部署SSL证书
5.1 证书格式选择
Tomcat支持JKS(Java KeyStore)和PFX(也称为PKCS12)两种格式。选择证书格式时,应根据实际需求来决定:
- JKS是Java专用的密钥库格式,适合主要在Java环境下使用
- PFX是一种通用格式,被Java及其他平台广泛支持,如果需要跨不同技术栈或与非Java系统集成,建议选择PFX格式
5.2 准备证书文件
下载服务器类型为Tomcat的证书。解压下载的证书压缩包,会得到证书文件(.pfx或.jks)和证书密码文件(.txt)。将证书文件和密码文件上传至服务器安全目录(如/etc/ssl/cert目录)。
5.3 配置PFX格式证书
编辑Tomcat配置文件server.xml(通常位于$CATALINA_HOME/conf/server.xml),添加以下Connector配置:
<Connector port="443"
protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150"
SSLEnabled="true"
scheme="https"
secure="true"
clientAuth="false"
sslProtocol="TLS"
keystoreFile="/etc/ssl/cert/example.com.pfx"
keystoreType="PKCS12"
keystorePass="证书密码"
/>
其中keystoreFile指向证书文件路径,keystorePass填写密码文件中的密码。
5.4 配置JKS格式证书
如果使用JKS格式,配置如下:
<Connector port="443"
protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150"
SSLEnabled="true"
scheme="https"
secure="true"
clientAuth="false"
sslProtocol="TLS"
keystoreFile="/etc/ssl/cert/example.com.jks"
keystoreType="JKS"
keystorePass="证书密码"
/>
5.5 重启Tomcat
配置完成后,重启Tomcat使配置生效:
sudo systemctl restart tomcat
或使用Tomcat安装目录下的脚本:
$CATALINA_HOME/bin/shutdown.sh
$CATALINA_HOME/bin/startup.sh
第六章:IIS服务器部署SSL证书
6.1 准备证书文件
下载服务器类型为IIS的证书。解压下载的证书压缩包,会得到PFX格式的证书文件和TXT格式的密码文件。将证书文件上传至服务器。
需要注意的是,每次下载证书时都会产生新的密码,该密码仅匹配本次下载的证书文件。
6.2 导入证书到Windows
在Windows服务器上,双击PFX证书文件,启动证书导入向导:
- 选择“本地计算机”作为存储位置
- 输入密码文件中的密码
- 选择“将所有的证书放入下列存储”,选择“个人”存储
- 完成导入
6.3 在IIS管理器中绑定证书
在IIS管理器中为网站绑定SSL证书的步骤如下:
- 打开IIS管理器
- 在左侧连接栏中选择目标网站
- 在右侧操作栏中点击“绑定”
- 点击“添加”
- 类型选择“https”,端口填写“443”
- SSL证书选择刚刚导入的证书
- 点击“确定”完成绑定
6.4 配置HTTP自动跳转HTTPS
在IIS中,可以通过安装URL Rewrite模块来实现HTTP到HTTPS的自动跳转,添加以下重写规则:
<rewrite>
<rules>
<rule name="Redirect to HTTPS" stopProcessing="true">
<match url=".*" />
<conditions>
<add input="{HTTPS}" pattern="off" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}/{R:0}" redirectType="Permanent" />
</rule>
</rules>
</rewrite>
第七章:部署方案选型
阿里云数字证书管理服务提供了两种主要的部署方案:
7.1 控制台自动部署
适用于阿里云云产品(SLB、CDN、WAF、ECS等),通过控制台一键部署。此方案全自动化,私钥不出实例,通过PKCS#11接口与硬件可信模块通信,安全性高。
7.2 手动下载部署
适用于自建服务器(Nginx、Apache、IIS、Tomcat等),需要下载证书文件后手动配置。本文前述章节介绍的就是手动部署方式。
对于符合条件的ECS可信实例(第七/八代x86架构),还可以使用一键部署功能,将证书自动部署至指定的ECS实例。
第八章:常见问题与故障排查
8.1 443端口未开放
HTTPS流量使用443端口,如果该端口被阻断,浏览器将无法建立安全连接。如果使用阿里云ECS实例,需要检查安全组规则,确保443端口允许入站流量。在服务器终端执行以下命令检测443端口的开放情况:
sudo ss -tlnp | grep ':443'
8.2 证书文件路径错误
配置文件中的证书文件路径和名称必须与服务器上实际存放的路径完全匹配。检查Nginx的ssl_certificate和ssl_certificate_key路径,或Tomcat的keystoreFile路径是否正确。
8.3 证书与私钥不匹配
证书和私钥必须是由同一CSR生成的一对密钥。如果私钥遗失,证书将无法使用,需重新购买证书并生成CSR和私钥。
8.4 证书链不完整
证书文件应包含完整的证书链(服务器证书+中间证书+根证书)。如果证书链不完整,浏览器可能会提示证书不受信任。Nginx的.pem文件通常已包含完整证书链,但如果是单独上传的证书,需要确保证书链完整。
8.5 证书已过期
在SSL证书管理页面检查证书状态是否为“已签发”。如果证书已过期,需要续费或重新申请。免费证书到期后不支持续费,需重新申请。
8.6 系统时间不正确
电脑的系统时间不正确会导致证书过期或校验不成功,从而提示证书风险。需要将系统时间修改正确后再尝试浏览网站。
结语
本文系统介绍了阿里云SSL证书从申请到部署的完整流程,涵盖Nginx、Tomcat、IIS三大主流Web服务器的详细配置方法。通过HTTPS加密传输,可以有效保障网站数据安全,提升用户信任度和搜索引擎排名。无论是个人博客还是企业级应用,都可以根据自身需求选择合适的证书类型和部署方案,快速完成HTTPS安全升级。
常见问题解答
问:阿里云免费SSL证书的有效期是多久?到期后怎么办?
答:阿里云免费SSL证书(个人测试证书)有效期为90天(3个月)。到期后不支持续费,需要重新申请。每个阿里云账号在一个自然年内可免费领取20张。
问:DV、OV、EV证书有什么区别?
答:DV证书仅验证域名所有权,签发最快(1~15分钟),适合个人网站。OV证书验证企业身份,证书中显示企业信息,签发约5个自然日。EV证书验证最严格,提供最高信任度,签发约5个自然日。
问:部署证书后网站还是显示“不安全”,怎么办?
答:首先检查443端口是否已在安全组中开放。其次确认配置文件中的证书路径是否正确。然后检查证书状态是否为“已签发”。最后确保证书绑定的域名与访问的域名一致。
问:Nginx部署证书后如何强制HTTP跳转到HTTPS?
答:在Nginx配置中添加一个监听80端口的server块,使用return 301 https://$server_name$request_uri;将所有HTTP请求重定向到HTTPS。
问:Tomcat部署证书时应该选择JKS还是PFX格式?
答:JKS是Java专用格式,适合主要在Java环境下使用。PFX是通用格式,被Java及其他平台广泛支持,如果需要跨技术栈集成,建议选择PFX。两者均可正常使用,根据实际需求选择即可。
问:证书私钥文件丢失了怎么办?
答:如果私钥文件丢失,证书将无法使用。需要重新购买证书并生成新的CSR和私钥。因此,建议在下载证书后妥善保存私钥文件,避免丢失。