阿里云SSL证书全流程指南:从申请、下载到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验证”
自动DNS验证:如果当前阿里云账号与域名的云解析DNS服务在同一个账号下,系统会自动识别并完成DNS验证,只需等待证书签发即可。
手动DNS验证:如果域名DNS服务不在阿里云,需要在域名DNS解析服务商添加TXT解析记录,等待解析生效后完成验证。
2.3 申请正式证书
正式证书的申请流程与个人测试证书类似,但在购买环节需要选择对应的证书品牌、证书类型、域名数量和服务年限。购买完成后,在“正式证书”页签点击“创建证书”,填写域名信息和联系方式,提交审核后等待CA机构签发。
第三章:下载SSL证书
证书签发后,需要从阿里云控制台下载证书文件。不同服务器支持的SSL证书格式不同,数字证书管理服务提供适用于Nginx、Tomcat、Apache、IIS、JKS等主流服务器的证书压缩包,可直接下载使用,无需手动转换证书格式。
3.1 下载操作步骤
V2.0版本中购买的证书:在左侧导航栏选择“证书管理”>“SSL证书管理 V2.0”。
V1.0版本中购买的证书:选择“证书管理”>“SSL证书管理(V1.0停止新购)”。
在正式证书页签,选中需要下载的证书,在证书列表左下方单击下载。在弹出的对话框,根据服务器类型选择对应的证书格式,下载证书包并解压。如果列表中没有与服务器匹配的证书格式,可以先下载PEM格式的证书,再通过证书格式转换工具进行转换。
3.2 服务器类型与证书格式对照
下载证书时,对话框中提供以下证书类型供选择:
| 服务器类型 | 证书格式 | 解压后文件说明 |
|---|---|---|
| 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(密码文件) |
| JKS | JKS | domain name.jks(证书文件)、jks-password.txt(密码文件) |
重要提示:每次下载证书时都会产生新的密码,该密码仅匹配本次下载的证书文件。如果申请证书时使用OpenSSL、Keytool等工具手动生成CSR文件,私钥文件仅保存在您本地,下载的证书压缩包中不包含私钥。如私钥遗失,证书将无法使用,需重新购买证书并生成CSR和私钥。
第四章:在Nginx服务器部署SSL证书
4.1 准备证书文件
进入SSL证书管理页面,在目标证书操作列单击“更多”进入证书详情页面,然后在下载页签中下载服务器类型为Nginx的证书。解压下载的证书压缩包,将证书文件(.pem)和私钥文件(.key)上传至服务器,并存放在一个安全的目录(如/etc/ssl/cert)。
4.2 配置Nginx
编辑Nginx配置文件(通常位于/etc/nginx/nginx.conf或/etc/nginx/conf.d/目录下),在server块中添加以下SSL配置:
server {
listen 443 ssl http2;
server_name example.com www.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;
ssl_prefer_server_ciphers on;
root /var/www/html;
index index.html index.htm;
}
server {
listen 80;
server_name example.com www.example.com;
return 301 https://$server_name$request_uri;
}4.3 验证配置并重启服务
# 测试Nginx配置是否正确
nginx -t
# 重启Nginx服务
systemctl restart nginx
# 或
service nginx restart第五章:在Apache服务器部署SSL证书
5.1 准备证书文件
在SSL证书管理页面下载服务器类型为Apache的证书。解压后得到证书文件(_public.crt)、证书链文件(_chain.crt)和私钥文件(.key),上传至服务器安全目录。
5.2 配置Apache
确保Apache已加载mod_ssl模块,然后编辑SSL配置文件(通常位于/etc/httpd/conf.d/ssl.conf或/etc/apache2/sites-available/default-ssl.conf):
<VirtualHost *:443>
ServerName example.com
ServerAlias www.example.com
SSLEngine on
SSLCertificateFile /etc/ssl/cert/example.com_public.crt
SSLCertificateKeyFile /etc/ssl/cert/example.com.key
SSLCertificateChainFile /etc/ssl/cert/example.com_chain.crt
DocumentRoot /var/www/html
</VirtualHost>对于HTTP到HTTPS的强制跳转,可以在HTTP虚拟主机中添加:
<VirtualHost *:80>
ServerName example.com
Redirect permanent / https://example.com/
</VirtualHost>5.3 验证配置并重启服务
# 测试Apache配置是否正确
apachectl configtest
# 重启Apache服务
systemctl restart httpd
# 或
systemctl restart apache2第六章:在Tomcat服务器部署SSL证书
6.1 准备证书文件
在SSL证书管理页面下载服务器类型为Tomcat的证书。Tomcat支持JKS和PFX(PKCS12)两种格式。
- JKS:Java专用的密钥库格式,适合主要在Java环境下使用。
- PFX:通用格式,被Java及其他平台广泛支持,适合跨技术栈集成。
解压后得到证书文件(.pfx或.jks)和密码文件(.txt),上传至服务器安全目录。
6.2 配置Tomcat(PFX格式)
编辑Tomcat的server.xml文件(位于$CATALINA_HOME/conf/目录下),在Connector中添加SSL配置:
<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="证书密码" />6.3 配置Tomcat(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="证书密码" />6.4 重启Tomcat
# 停止Tomcat
$CATALINA_HOME/bin/shutdown.sh
# 启动Tomcat
$CATALINA_HOME/bin/startup.sh第七章:在IIS服务器部署SSL证书
7.1 准备证书文件
在SSL证书管理页面下载服务器类型为IIS的证书。解压后得到PFX格式证书文件和密码文件(.txt)。
7.2 导入证书到Windows证书存储
双击PFX证书文件,按照向导导入证书。在导入过程中需要输入证书密码(来自密码文件),并选择“将所有的证书放入下列存储”>“个人”。
7.3 在IIS管理器中绑定证书
- 打开IIS管理器
- 在左侧连接窗格中,选择需要绑定证书的站点
- 在右侧操作窗格中,点击“绑定”
- 点击“添加”,类型选择“https”,端口填写“443”
- 在SSL证书下拉列表中,选择刚才导入的证书
- 点击“确定”完成绑定
第八章:证书格式转换
如果下载的证书格式与服务器不匹配,可以使用阿里云数字证书管理服务提供的证书格式转换工具,支持PEM与PFX、PEM与JKS、PEM与PKCS8格式之间的转换。也可以使用OpenSSL命令行工具进行转换:
8.1 PEM转PFX
openssl pkcs12 -export -out certificate.pfx -inkey private.key -in certificate.crt -certfile chain.crt8.2 PEM转JKS
先将PEM转换为PKCS12,再从PKCS12导入JKS:
# PEM转PKCS12
openssl pkcs12 -export -out temp.p12 -inkey private.key -in certificate.crt -certfile chain.crt
# PKCS12转JKS
keytool -importkeystore -srckeystore temp.p12 -srcstoretype PKCS12 -destkeystore certificate.jks -deststoretype JKS第九章:一键部署到云产品
对于阿里云ECS实例,如果已正确安装云助手(cloudAssistant),可以在控制台实现一键部署SSL证书。操作路径:数字证书管理服务控制台 > 部署和资源管理 > 云服务器部署 > 创建任务,按照引导完成证书部署。一键部署功能支持将证书部署到ECS可信实例、负载均衡(ALB)、内容分发网络(CDN)、Web应用防火墙(WAF)等云产品。
第十章:常见问题与排查
10.1 检查443端口是否放行
在服务器终端执行以下命令检测443端口的开放情况:
# RHEL/CentOS
sudo ss -tlnp | grep ':443'
# 或使用nc命令测试
nc -vz 服务器公网IP 443如果443端口未开放,需要在ECS安全组入方向添加TCP 443端口规则。
10.2 检查证书与域名是否匹配
确保证书绑定的域名与网站访问的域名完全一致。通配符证书(*.example.com)仅对一级子域名生效,对根域名和多级子域名不生效。
10.3 检查证书链完整性
如果浏览器提示证书链不完整,需要确保证书配置中包含了完整的证书链文件(中间证书)。在Nginx中可以使用ssl_trusted_certificate指令指定证书链文件。
10.4 检查配置文件路径
确保证书文件路径与配置文件中的路径完全一致,包括文件名的大小写。建议使用绝对路径避免路径解析问题。
10.5 证书与私钥不匹配
如果证书与私钥不匹配,可以通过验证MD5值来确认。在Linux服务器中执行:
# 查看证书MD5
openssl x509 -noout -modulus -in certificate.crt | openssl md5
# 查看私钥MD5
openssl rsa -noout -modulus -in private.key | openssl md5如果两个MD5值不一致,说明证书与私钥不匹配。
10.6 浏览器缓存问题
部署完成后如果浏览器仍显示不安全,可以尝试清除浏览器缓存或使用无痕模式访问。
结语
本文系统介绍了阿里云SSL证书从申请、下载到部署到四大主流Web服务器(Nginx、Apache、Tomcat、IIS)的完整流程。无论是个人测试证书还是企业级正式证书,阿里云数字证书管理服务都提供了便捷的操作路径和丰富的部署方式。希望本文能够帮助读者顺利完成HTTPS加密配置,提升网站的安全性和用户信任度。
常见问题与解答
问1:阿里云免费SSL证书的有效期是多久?每个账号可以申请多少张?
答:阿里云个人测试证书(免费版)有效期为90天(3个月),每个阿里云账号在一个自然年内可免费领取20张。到期后不支持续费,需要重新申请。
问2:下载证书时应该选择什么格式?
答:根据服务器类型选择对应格式——Nginx选择PEM格式,Apache选择CRT格式,Tomcat和IIS选择PFX(PKCS12)格式。如果列表中没有匹配的格式,可以先下载PEM格式再通过转换工具转换。
问3:证书部署后网站仍然显示“不安全”,怎么办?
答:按以下顺序排查:检查443端口是否在安全组中放行;检查证书绑定的域名是否与访问域名一致;检查证书链是否完整;检查配置文件中的证书路径是否正确;清除浏览器缓存后重新访问。
问4:私钥文件丢失了怎么办?
答:如果私钥丢失,证书将无法使用。需要重新购买证书并生成新的CSR和私钥。建议在申请证书时选择“系统生成CSR”,这样私钥由阿里云托管,避免丢失风险。
问5:通配符证书(*.example.com)能保护根域名和多级子域名吗?
答:不能。通配符证书仅对其一级子域名生效(如www.example.com、a.example.com),对根域名example.com和多级子域名(如a.b.example.com)不生效。如需保护多级子域名,需要在证书绑定域名中明确包含该域名。
问6:证书到期后如何续期?
答:免费版证书到期后不支持续费,需要重新申请并部署。付费证书可以在到期前通过控制台进行续费操作。建议开启证书托管服务,实现证书到期前的自动续期。




