
嘻道奇闻
- 文章199742
- 阅读14625734
Windows服务器部署SSL证书全流程详解
一、为啥要给网站装SSL证书?
你肯定见过浏览器地址栏那个小锁图标吧?说白了,??有锁才代表你的网站是安全的??。现在随便一个支付页面、登录界面要是没这个锁,用户立马掉头就走——谁愿意在裸奔的网页上填银行卡号啊!
更狠的是,谷歌早就把HTTPS当作搜索排名的重要指标。你网站要是还在用HTTP,流量至少被砍掉30%,这可不是吓唬人。
二、准备工作别马虎
??1. 搞到证书文件是第一步??
不管是花钱买的商业证书(比如DigiCert、GeoTrust),还是白嫖的Let's Encrypt(全球27%的网站都在用),都得拿到这三个玩意儿:
- 域名证书(.crt或.pem)
- 私钥文件(.key)
- 中级证书(CA证书,新手最常漏掉这个)
??2. 查清楚服务器系统版本??
按住Win+R输入winver
,弹窗会告诉你用的是Server 2012还是2016/2019。??不同系统的IIS管理器界面可能差挺多??,别照着老教程硬套。
??3. 提前备份网站配置??
打开IIS管理器,右键你的站点选"导出配置",这招关键时刻能救命。去年有个哥们手滑删了绑定信息,结果网站瘫了3小时,奖金全泡汤。
三、证书安装实操手册
步骤1:把证书怼进系统仓库
- 双击.crt文件,会弹出证书安装向导
- 选"本地计算机",??千万别手快点了当前用户??(见图1示意图)
- 存到"受信任的根证书颁发机构",点完下一步就齐活
可能有人会问:"为啥非得装到根证书库?" 简单说就是让系统认这张证书是正经机构发的,不然浏览器还得弹警告。
步骤2:IIS里绑定HTTPS
- 在IIS管理器找到你的网站,右键"绑定"
- 点添加,类型选https
- ??主机名必须和证书域名完全一致??,多一个www都不行
- 在SSL证书下拉框里挑中刚导入的证书
这里有个坑:如果下拉框是灰的,说明证书没正确导入。八成是安装时没选"本地计算机",回去重做一遍吧。
步骤3:强制跳转HTTPS
光绑定还不够,得让HTTP自动转HTTPS。在站点根目录的web.config里加这段代码:
xml复制<configuration> <system.webServer> <rewrite> <rules> <rule name="Force HTTPS" stopProcessing="true"> <match url="(.*)" /> <conditions> <add input="{HTTPS}" pattern="^OFF$" /> conditions> <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" /> rule> rules> rewrite> system.webServer> configuration>
四、验货环节不能省
- 访问你的网站,地址栏要有绿色锁标
- 用https://www.ssllabs.com/ssltest/扫一遍,评分至少得B
- 手机4G网络打开试试,有时候局域网缓存会骗人
去年遇到个邪门案例:电脑访问正常,但手机一直报证书错误。最后发现是CDN节点没同步证书,白折腾两天。
五、翻车急救指南
情况1:证书过期了咋整?
别慌,Let's Encrypt的证书每3个月要续一次。推荐用Win-acme工具自动化续签,设置个任务计划每月跑一次,比闹钟还准时。
情况2:出现"证书不匹配"警告
九成九是因为绑定站点时主机名填错了。比如证书是给http://www.domain.com发的,你网站绑的是domain.com,这就属于作死行为。
情况3:IIS报错"找不到私钥"
八成是安装证书时没勾选"允许私钥被导出"。解决方法:重新导出带私钥的.pfx文件,用MMC控制台重新导入。
个人观点:现在Let's Encrypt已经支持通配符证书,中小网站真没必要花冤枉钱买商业证书。不过要注意Windows Server 2012原生不支持ACME协议,得升级到2016以上或者装第三方客户端。定期用Certify The Web这类工具扫全网,比人工检查靠谱多了。