阿里云HTTPS证书从申请到下载到部署全流程(IIS/NGINX/Apache/Tomcat)
前言:为什么你的网站需要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验证”
2.3 域名验证方式详解
自动DNS验证:如果域名的DNS云解析服务在当前阿里云账号下,系统会自动识别并完成DNS验证,只需等待证书签发即可。这是最便捷的方式,推荐使用。
手动DNS验证:如果域名不在当前账号下管理,或DNS服务商非阿里云,则需要手动添加TXT解析记录。系统会生成一条特定的TXT记录值,需要在域名DNS管理后台添加该记录,等待解析生效后系统自动完成验证。
提交申请后,通常等待5-10分钟即可签发。证书签发后,状态会变为“已签发”。
第三章:下载SSL证书
3.1 下载前提
只有状态为已签发、即将过期、已过期的SSL证书支持下载,其他状态无法下载。上传到数字证书管理服务进行统一管理的第三方证书不支持下载。
3.2 下载操作步骤
V2.0版本中购买的证书,在左侧导航栏选择“证书管理”>“SSL证书管理V2.0”。V1.0版本中购买的证书,选择“证书管理”>“SSL证书管理(V1.0停止新购)”。
在正式证书或个人测试证书(原免费证书)页签,选中需要下载的证书,在证书列表左下方单击下载。在弹出的对话框,根据服务器类型选择对应的证书格式,下载证书包并解压。
3.3 服务器类型与证书格式对照
数字证书管理服务提供适用于Nginx、Tomcat、Apache、IIS、JKS等主流服务器的证书压缩包,可直接下载使用,无需手动转换证书格式。
| 服务器类型 | 证书格式 | 解压后文件说明 |
|---|---|---|
| Nginx | PEM | domain name.pem(证书文件)、domain name.key(私钥文件) |
| Apache | CRT | domain name_public.crt(证书文件)、domain name_chain.crt(证书链文件)、domain name.key(私钥文件) |
| Tomcat | PFX(PKCS12) | domain name.pfx(证书文件)、pfx-password.txt(证书保护密码) |
| IIS | PFX(PKCS12) | domain name.pfx(证书文件)、pfx-password.txt(证书保护密码) |
如果列表中没有与服务器匹配的证书格式,可以先下载PEM格式的证书,再通过证书格式转换工具进行转换。
3.4 关于私钥的重要说明
在证书申请过程中,如果使用了通过OpenSSL或Keytool等工具手动生成的证书签名请求文件(CSR),由于私钥文件由本地保管,下载的证书压缩包中不包含私钥文件。如私钥遗失,证书将无法使用,需重新购买正式证书并生成CSR和私钥。
每次下载证书时都会产生新的密码,该密码仅匹配本次下载的证书文件。
第四章:部署SSL证书到Nginx
4.1 准备证书文件
进入SSL证书管理页面,在目标证书操作列单击更多进入证书详情页面,然后在下载页签中下载服务器类型为Nginx的证书。解压下载的证书压缩包,会得到证书文件(.pem)和私钥文件(.key)。
将解压后的证书文件(.pem)和私钥文件(.key)上传至服务器,并存放在一个安全的外部目录(如/etc/ssl/cert目录)。
4.2 配置Nginx
编辑Nginx配置文件(通常为/etc/nginx/nginx.conf或/etc/nginx/conf.d/下的站点配置文件),添加监听443端口的server块。以下是一个完整的HTTPS配置示例:
server {
listen 443 ssl;
server_name www.example.com example.com;
ssl_certificate /etc/ssl/cert/domain_name.pem;
ssl_certificate_key /etc/ssl/cert/domain_name.key;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location / {
root /var/www/html;
index index.html index.htm;
}
}配置参数说明:
- listen 443 ssl:监听443端口并启用SSL
- ssl_certificate:指定证书文件(.pem)的路径
- ssl_certificate_key:指定私钥文件(.key)的路径
- ssl_protocols:指定支持的TLS协议版本
- ssl_ciphers:指定加密套件
4.3 强制HTTP跳转HTTPS(可选)
如需将所有HTTP请求强制重定向到HTTPS,可添加以下配置:
server {
listen 80;
server_name www.example.com example.com;
return 301 https://$server_name$request_uri;
}4.4 验证与重启
配置完成后,执行以下命令检查配置文件语法是否正确:
nginx -t如果语法无误,重启Nginx使配置生效:
systemctl restart nginx或者
nginx -s reload第五章:部署SSL证书到Apache
5.1 准备证书文件
进入SSL证书管理页面,在目标证书操作列单击更多进入证书详情页面,然后在下载页签中下载服务器类型为Apache的证书。解压下载的证书压缩包,会得到证书文件(_public.crt)、证书链文件(_chain.crt)和私钥文件(.key)。
将解压后的三个文件上传至服务器,并存放在安全目录(如/etc/ssl/cert目录)。
5.2 配置Apache
编辑Apache配置文件(通常为/etc/httpd/conf/httpd.conf或/etc/apache2/sites-available/下的配置文件),确保已加载mod_ssl模块,然后添加或修改VirtualHost配置:
<VirtualHost *:443>
ServerName www.example.com
DocumentRoot /var/www/html
SSLEngine on
SSLCertificateFile /etc/ssl/cert/domain_name_public.crt
SSLCertificateKeyFile /etc/ssl/cert/domain_name.key
SSLCertificateChainFile /etc/ssl/cert/domain_name_chain.crt
<Directory /var/www/html>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost>配置参数说明:
- SSLEngine on:启用SSL引擎
- SSLCertificateFile:指定服务器证书文件路径
- SSLCertificateKeyFile:指定私钥文件路径
- SSLCertificateChainFile:指定证书链文件路径
5.3 验证与重启
配置完成后,执行以下命令检查配置文件语法:
apachectl configtest如果语法无误,重启Apache使配置生效:
systemctl restart httpd或者(Debian/Ubuntu系统):
systemctl restart apache2第六章:部署SSL证书到Tomcat
6.1 准备证书文件
进入SSL证书管理页面,在目标证书操作列单击更多进入证书详情页面,然后在下载页签中下载服务器类型为Tomcat的证书。解压下载的证书压缩包,解压后包含一个证书文件(.pfx或.jks)和证书密码文件(.txt)。
将证书文件上传至服务器,并存放在安全目录(本文示例路径为D:\cert或/etc/tomcat/ssl)。
6.2 配置Tomcat(PFX格式)
编辑Tomcat配置文件(通常为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="D:/cert/domain_name.pfx"
keystorePass="证书密码"
keystoreType="PKCS12" />配置参数说明:
- port:HTTPS监听端口,通常为443
- SSLEnabled:启用SSL
- keystoreFile:指定PFX证书文件路径
- keystorePass:证书密码(从密码文件中获取)
- keystoreType:密钥库类型,PFX格式为PKCS12
6.3 配置Tomcat(JKS格式)
如果下载的是JKS格式证书,配置略有不同:
<Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150" SSLEnabled="true"
scheme="https" secure="true"
clientAuth="false"
sslProtocol="TLS"
keystoreFile="D:/cert/domain_name.jks"
keystorePass="证书密码"
keystoreType="JKS" />6.4 验证与重启
保存配置文件后,重启Tomcat服务使配置生效:
systemctl restart tomcat或者(Windows系统):
net stop Tomcat9 && net start Tomcat9第七章:部署SSL证书到IIS
7.1 准备证书文件
进入SSL证书管理页面,在目标证书操作列单击更多进入证书详情页面,然后在下载页签中下载服务器类型为IIS的证书。解压下载的证书压缩包,会得到证书文件(.pfx)和密码文件(.txt)。
将证书文件上传至Windows服务器。
7.2 导入证书到IIS
步骤一:打开IIS管理器
在Windows服务器上,打开“Internet Information Services (IIS)管理器”。
步骤二:导入证书
在左侧连接面板中,点击服务器名称节点,在中间区域找到“服务器证书”功能,双击进入。在右侧操作面板中,点击“导入”。在弹出的对话框中:
- 证书文件(.pfx):选择上传的PFX证书文件
- 密码:输入密码文件中的密码
- 证书存储:选择“个人”
点击“确定”完成导入。
7.3 绑定证书到网站
在IIS管理器中,展开“站点”节点,找到需要绑定证书的网站,右键点击选择“编辑绑定”。点击“添加”或选择已有的https绑定类型点击“编辑”:
- 类型:选择https
- IP地址:选择“全部未分配”或指定IP
- 端口:443
- SSL证书:选择刚才导入的证书
点击“确定”保存绑定。
7.4 验证与重启
配置完成后,无需重启IIS服务,绑定即时生效。可通过浏览器访问https://域名进行验证。
第八章:进阶优化与安全加固
8.1 启用HTTP/2协议
HTTP/2可以显著提升网站加载速度。在Nginx中,只需在listen指令后添加http2即可:
listen 443 ssl http2;在Apache中,需要加载mod_http2模块并在VirtualHost中添加:
Protocols h2 http/1.18.2 TLS协议版本与加密套件优化
为兼顾安全性与兼容性,推荐配置如下:
Nginx示例:
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_prefer_server_ciphers on;Apache示例:
SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1
SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4
SSLHonorCipherOrder on8.3 开启HSTS(HTTP严格传输安全)
HSTS可以强制浏览器仅通过HTTPS访问网站,防止SSL剥离攻击。在Nginx中添加:
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;在Apache中添加:
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"第九章:常见部署问题与解决方案
9.1 443端口无法访问
问题现象:配置完成后,浏览器访问https://域名超时或无法连接。
解决方案:
- 检查服务器安全组是否已开放443端口(入方向)
- 检查服务器防火墙是否允许443端口通信
- 使用命令检测端口监听状态:
ss -tlnp | grep 443或netstat -an | findstr 443
9.2 证书链不完整
问题现象:浏览器提示“证书不受信任”或“证书链不完整”。
解决方案:对于Nginx/Apache,如果CA提供了独立的中间证书文件,需要将服务器证书和中间证书合并,然后再部署生成的完整证书链文件。通常无需将根CA证书包含在部署的链文件中,仅拼接服务器证书与中间证书即可。
在Nginx中,如果下载的证书包中已包含完整的证书链(.pem文件已包含中间证书),则无需额外操作。如果只有服务器证书,需要手动合并:
cat domain_name_public.crt domain_name_chain.crt > domain_name_fullchain.crt然后将ssl_certificate指向合并后的文件。
9.3 证书域名不匹配
问题现象:浏览器提示“证书与域名不匹配”。
解决方案:
- 确保证书绑定的域名与访问的URL完全一致
- 通配符证书(*.example.com)仅对一级子域名生效,对根域名和多级子域名不生效
- 如需匹配多级子域名,绑定域名中需包含该域名,或包含相应的通配符域名
9.4 配置文件路径错误
问题现象:服务启动时提示找不到证书文件或私钥文件。
解决方案:
- 确保证书文件已上传至服务器指定路径
- 检查配置文件中证书路径是否为绝对路径
- 检查证书文件的读取权限(Nginx/Apache运行用户需有读取权限)
9.5 证书已过期
问题现象:浏览器提示“证书已过期”。
解决方案:个人测试证书(免费版)有效期为90天,到期后不支持续费,需重新申请。正式证书到期前需及时续费。建议设置证书到期提醒,提前30天处理证书更新事宜。
第十章:总结
本文系统讲解了阿里云HTTPS证书从申请到部署的全流程,涵盖了证书类型选型、申请步骤、下载方法以及Nginx、Apache、Tomcat、IIS四大主流Web服务器的详细配置方法。通过本文的指导,读者可以快速为自己的网站启用HTTPS加密,提升网站安全性与用户信任度。
在实际部署过程中,需要注意以下几个关键点:
- 申请证书前确保域名已备案且DNS解析正确
- 下载证书时务必选择与服务器类型匹配的格式
- 妥善保管私钥文件和证书密码,一旦丢失将无法恢复
- 部署完成后务必验证HTTPS访问是否正常
- 免费证书有效期为90天,建议设置到期提醒
HTTPS已成为现代网站的标配,希望本文能帮助读者顺利完成从HTTP到HTTPS的升级改造。
常见问题问答
问1:阿里云免费SSL证书的有效期是多久?到期后怎么办?
答:阿里云个人测试证书(免费版)有效期为90天(3个月),到期后不支持续费,需要重新申请。每个阿里云账号在一个自然年内可免费领取20张。
问2:下载证书时应该选择什么格式?
答:应根据服务器类型选择对应格式——Nginx选择PEM格式,Apache选择CRT格式,Tomcat和IIS选择PFX(PKCS12)格式。如果列表中没有匹配的格式,可先下载PEM格式再通过工具转换。
问3:配置完成后浏览器提示“证书不受信任”是什么原因?
答:通常是证书链不完整导致的。需要将服务器证书和中间证书合并后部署。在Nginx中可将_public.crt和_chain.crt合并为一个文件。
问4:部署HTTPS后需要开放哪些端口?
答:HTTPS默认使用443端口,需要在服务器安全组和防火墙中放行443端口的入方向流量。如果自定义了HTTPS端口,则需要放行对应的端口。
问5:通配符证书(*.example.com)能保护根域名example.com吗?
答:不能。通配符证书仅对一级子域名生效(如www.example.com、a.example.com),对根域名example.com和多级子域名(如a.b.example.com)不生效。
问6:私钥文件丢失了怎么办?
答:私钥文件一旦丢失,证书将无法使用,无法恢复。需要在阿里云数字证书管理服务中重新申请证书。建议在申请证书时使用系统生成CSR的方式,系统会自动保管私钥。



