阿里云SSL证书完全指南:从申请到Nginx/Tomcat/IIS全服务器部署实战
前言:为什么你的网站需要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管理下,系统会自动添加TXT记录并完成验证,只需等待证书签发即可。如果选择手动DNS验证,需要登录域名DNS管理控制台,添加一条TXT记录,记录值为CA机构提供的验证字符串。
验证通过后,CA机构会签发证书,状态变为“已签发”。
第三章:下载SSL证书
证书签发后,进入SSL证书管理页面,在目标证书操作列单击“更多”进入证书详情页面,然后在下载页签中根据服务器类型下载对应的证书。
不同服务器支持的SSL证书格式不同:
- Nginx:下载Nginx类型的证书,包含.pem证书文件和.key私钥文件
- Tomcat:下载Tomcat类型的证书,包含.pfx或.jks证书文件和.txt密码文件
- IIS:下载IIS类型的证书,包含PFX格式证书文件和TXT密码文件
说明:若申请证书时使用OpenSSL、Keytool等工具生成CSR文件,私钥文件仅保存在您本地,下载的证书包中不包含私钥。如私钥遗失,证书将无法使用。
第四章:Nginx服务器部署SSL证书
Nginx是目前最流行的Web服务器之一,以下是在Linux系统上为Nginx部署SSL证书的完整步骤。
4.1 上传证书文件
将解压后的证书文件(.pem)和私钥文件(.key)上传至服务器,并存放在一个安全的外部目录,如 /etc/ssl/cert 目录。
4.2 配置Nginx
编辑Nginx配置文件(通常位于 /etc/nginx/conf.d/ 或 /etc/nginx/sites-available/ 目录下),添加以下配置:
server {
listen 443 ssl http2;
server_name www.example.com example.com;
ssl_certificate /etc/ssl/cert/your_domain.pem;
ssl_certificate_key /etc/ssl/cert/your_domain.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;
location / {
try_files $uri $uri/ =404;
}
}配置说明:
- listen 443 ssl http2:监听443端口,启用SSL和HTTP/2协议
- ssl_certificate:指定证书文件路径(.pem格式)
- ssl_certificate_key:指定私钥文件路径(.key格式)
- ssl_protocols:仅启用高安全性的TLSv1.2和TLSv1.3协议,关闭老旧不安全的TLSv1.0和TLSv1.1
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
# 检查配置文件语法
nginx -t
# 重启Nginx服务
systemctl restart nginx
# 或
service nginx restart第五章:Tomcat服务器部署SSL证书
Tomcat支持JKS(Java KeyStore)和PFX(PKCS12)两种格式的SSL证书。
5.1 选择证书格式
- JKS:Java专用的密钥库格式,适合主要在Java环境下使用
- PFX:通用格式,被Java及其他平台广泛支持,适合跨技术栈场景
5.2 上传证书文件
将解压后的证书文件(.pfx或.jks)和密码文件(.txt)上传至服务器,存放在安全目录如 /etc/ssl/cert。
5.3 配置Tomcat
编辑Tomcat的 server.xml 配置文件(通常位于 $CATALINA_HOME/conf/server.xml),在 <Service> 标签内添加或修改 Connector:
PFX格式配置:
<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/your_domain.pfx"
keystoreType="PKCS12"
keystorePass="你的证书密码" />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/your_domain.jks"
keystoreType="JKS"
keystorePass="你的证书密码" />5.4 配置HTTP跳转HTTPS
在 web.xml 中添加以下安全约束配置,将HTTP请求重定向到HTTPS:
<security-constraint>
<web-resource-collection>
<web-resource-name>Protected Area</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>5.5 重启Tomcat
# 进入Tomcat bin目录
cd $CATALINA_HOME/bin
# 停止Tomcat
./shutdown.sh
# 启动Tomcat
./startup.sh第六章:IIS服务器部署SSL证书
IIS(Internet Information Services)是Windows平台上的主流Web服务器。
6.1 上传证书文件
将下载的IIS证书压缩包解压,得到PFX格式证书文件和TXT密码文件,上传至Windows服务器。
6.2 导入证书到Windows证书存储
双击PFX证书文件,按照证书导入向导完成导入:
- 选择“本地计算机”作为存储位置
- 输入证书密码(从TXT文件中获取)
- 选择“将所有的证书放入下列存储”,选择“个人”
6.3 在IIS中绑定证书
步骤一:打开IIS管理器
在Windows服务器上打开“Internet Information Services (IIS) 管理器”。
步骤二:选择网站并绑定
在左侧连接面板中选择需要配置的网站,点击右侧操作面板中的“绑定”。
步骤三:添加HTTPS绑定
- 点击“添加”
- 类型选择“https”
- 端口填写“443”
- SSL证书选择刚才导入的证书
- 勾选“需要服务器名称指示”
6.4 配置HTTP自动跳转HTTPS
在IIS中可以通过安装URL Rewrite模块实现HTTP到HTTPS的自动跳转,或通过在web.config中添加以下规则:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<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:1}" redirectType="Permanent" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>第七章:证书格式转换
某些情况下,可能需要将证书在不同格式之间进行转换。阿里云数字证书管理服务提供了证书格式转换工具,支持PEM与PFX、PEM与JKS、PEM与PKCS8格式之间的转换。
常用格式说明:
- PEM:文本格式,常见于Nginx、Apache等服务器,文件扩展名为.pem或.crt
- PFX/PKCS12:二进制格式,常见于Windows IIS、Tomcat等服务器,文件扩展名为.pfx或.p12
- JKS:Java密钥库格式,专用于Java应用服务器如Tomcat
如需将CER格式证书转换为CRT格式,直接修改文件后缀即可。
第八章:进阶优化配置
8.1 启用HSTS(HTTP严格传输安全)
HSTS强制浏览器仅通过HTTPS访问网站,避免SSL剥离攻击。
Nginx配置:
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;Tomcat配置:在web.xml中添加
<filter>
<filter-name>HSTSFilter</filter-name>
<filter-class>org.apache.catalina.filters.HttpHeaderSecurityFilter</filter-class>
<init-param>
<param-name>hstsMaxAgeSeconds</param-name>
<param-value>31536000</param-value>
</init-param>
</filter>8.2 启用OCSP装订
OCSP装订可以减少浏览器验证证书吊销状态的时间,提升HTTPS访问速度。
Nginx配置:
ssl_stapling on;
ssl_stapling_verify on;
ssl_trusted_certificate /etc/ssl/cert/your_domain.pem;第九章:常见问题排查
9.1 443端口未开放
检查服务器安全组和防火墙是否放行了443端口。在Linux上使用以下命令检查:
sudo ss -tlnp | grep :443
# 或
sudo netstat -tlnp | grep :4439.2 证书与私钥不匹配
验证证书文件和私钥文件的MD5值是否一致。如果不一致,表示证书和私钥关联了不同的域名。
# 查看证书MD5
openssl x509 -noout -modulus -in your_domain.pem | openssl md5
# 查看私钥MD5
openssl rsa -noout -modulus -in your_domain.key | openssl md59.3 证书链不完整
某些浏览器可能提示证书链不完整。需要在Nginx配置中指定完整的证书链:
ssl_certificate /etc/ssl/cert/fullchain.pem; # 包含完整证书链9.4 域名解析不正确
确保证名的DNS解析已正确指向服务器IP。使用以下命令验证:
ping your_domain.com
# 或
dig your_domain.com9.5 证书已过期
免费证书有效期为90天,到期后需要重新申请。建议设置日历提醒,在证书到期前及时更新。
9.6 系统时间不正确
客户端系统时间不正确会导致证书过期或校验不成功,提示证书风险。需要将系统时间修改正确后再尝试浏览网站。
结语
本文系统地介绍了阿里云SSL证书从申请到部署在Nginx、Tomcat、IIS三大主流Web服务器上的完整流程。通过合理选择证书类型、正确完成域名验证、准确配置服务器参数,即可为网站启用HTTPS加密传输,保障数据安全并提升用户信任。希望本文能帮助读者顺利完成HTTPS配置,让网站安全无忧地运行在互联网上。
常见问题问答
问1:阿里云免费SSL证书的有效期是多久?每年可以申请多少张?
答:阿里云个人测试证书(免费版)有效期为90天(3个月)。每个实名认证的阿里云账号在一个自然年内可免费领取20张。
问2:Nginx部署SSL证书时,需要配置哪些关键参数?
答:核心参数包括ssl_certificate(证书文件路径)、ssl_certificate_key(私钥文件路径)、ssl_protocols(推荐TLSv1.2 TLSv1.3)。同时需要确保443端口已开放,并建议配置HTTP到HTTPS的301重定向。
问3:Tomcat服务器支持哪些SSL证书格式?有什么区别?
答:Tomcat支持JKS和PFX(PKCS12)两种格式。JKS是Java专用格式,适合纯Java环境;PFX是通用格式,支持跨平台和非Java系统集成。
问4:IIS服务器部署SSL证书后,如何实现HTTP自动跳转HTTPS?
答:可以通过安装URL Rewrite模块,在web.config中添加重写规则,将所有HTTP请求永久重定向(301)到HTTPS版本。
问5:部署SSL证书后网站仍然显示“不安全”,该如何排查?
答:按以下顺序排查:①检查443端口是否开放;②确认证书与私钥是否匹配(MD5校验);③验证证书链是否完整;④检查域名解析是否正确指向服务器;⑤确认证书未过期;⑥检查客户端系统时间是否正确。
问6:不同服务器类型下载的证书格式有什么区别?
答:Nginx下载.pem+.key;Tomcat下载.pfx或.jks+密码文件;IIS下载PFX+密码文件。数字证书管理服务根据服务器类型自动打包对应格式,无需手动转换。



