https 证书申请指南,网站 https 证书申请流程

https 证书申请指南

浏览器地址栏的小锁标识,还有网址开头的https,现在已经是网站获取用户信任的基础条件。没有部署HTTPS,Chrome浏览器会直接标记页面不安全,普通访客看到这个提示,大多会直接关闭页面。不管搭建个人博客还是企业官网,证书部署迟早要做。

证书类型不止一种。市面上主流SSL证书按照验证等级分为DV、OV、EV三类。DV证书验证最简单,证书颁发机构只核验域名归属权,通过DNS解析或者网站根目录放置验证文件完成校验。整个流程几分钟到几小时完成,价格从免费到几百元不等。个人博客、小型资讯站点、测试环境选用DV证书足够,能够实现传输加密,消除浏览器不安全提示。

https 证书申请指南,网站 https 证书申请流程

OV证书核验要求更高,除验证域名所有权,还要核对企业工商信息真实性,签发周期一般一到三个工作日。证书生效之后浏览器展示已验证组织信息,但地址栏不会直接显示企业名称。中小企业官网、B2B平台、非金融类交易站点,OV证书适配性更好。

EV证书审核标准最严格,核验企业工商资料、法人身份、经营地址,签发耗时三到五个工作日。特点是浏览器地址栏变绿,展示完整企业名称。银行、医疗、政务、跨境电商这类涉及资金或是敏感数据业务,才适合使用EV证书。普通网站高价办理EV证书,属于多余投入。

证书选型主要看两点,站点是否需要向访客证明企业实体资质,行业有没有合规强制要求高等级证书。两项都不需要,DV证书就够用,省下的资金和精力可以投入站点其他维护工作。

绝大多数个人站长和小型团队起步选用免费证书,Let's Encrypt是应用最广的免费方案。由非营利组织ISRG运营,所有主流浏览器信任,证书有效期九十天,可以无限次免费申请。全球排名前一百万站点里面,超过三成使用这套证书。

申请Let's Encrypt证书最简便的方式是Certbot工具。以Nginx为例,Ubuntu或者Debian系统执行安装命令:


sudo apt install certbot python3-certbot-nginx

再执行这条命令完成申请和配置:


sudo certbot --nginx -d example.com -d www.example.com

执行完成之后,Certbot自动完成域名验证、生成证书与私钥、修改Nginx配置,并且把HTTP访问请求重定向到HTTPS,不需要手动修改配置文件。

服务器没有shell权限,或是使用虚拟主机面板,很多主机商控制面板带有一键申请SSL证书入口,底层调用Let's Encrypt,填写域名确认即可。阿里云、腾讯云用户也能在证书管理控制台申请免费证书,操作流程相近。

域名验证是申请环节最容易失败的地方。CA机构确认域名归属之后,才会签发证书。主流验证方式分为DNS验证、文件验证、邮箱验证三类。

DNS验证,在域名解析记录新增一条TXT记录,CA机构查询这条记录确认归属。例如Let's Encrypt分配的TXT记录主机名_acme-challenge.example.com,对应值是一串随机字符,在域名DNS服务商后台添加这条记录,等待解析生效就能完成验证。这种方式不用改动服务器配置,通配符证书必须使用DNS验证。

文件验证,在网站根目录上传CA机构指定文件,CA通过HTTP访问这个文件确认服务器控制权。这个方式要求服务器开放80或者443端口,防火墙拦截端口就会验证失败。文件存放路径必须准确,路径错误CA无法访问,校验失败。

DNS验证和文件验证没有绝对优劣,看自身条件。拥有DNS管理权限优先DNS验证,操作省心。只能操作服务器文件,无法修改解析记录,就选用文件验证。两种方式都报错,排查解析是否生效、服务器是否拦截CA访问请求、文件权限配置。

证书申请完成之后部署到服务器。下载证书压缩包一般包含.pem证书文件和.key私钥文件。Nginx部署,把两个文件放到服务器安全目录,在Nginx配置文件server块内添加ssl_certificate和ssl_certificate_key配置项,填入对应文件路径。Apache配置逻辑类似,指令名称不一样。

部署完成不要直接结束,浏览器访问域名,确认地址栏锁图标正常显示。没有出现锁标识,清除浏览器缓存重试。依旧异常,检查证书链是否完整。部分证书包只包含站点证书,缺少中间证书,浏览器校验链断裂提示证书不受信任,补齐中间证书一般就能解决。

Let's Encrypt证书有效期只有九十天,证书过期网站会重新标记不安全。Certbot安装时一般自动配置定时任务,证书到期前三十天自动发起续期。可以执行sudo certbot renew --dry-run测试续期流程,确认自动续期功能正常运行。

付费证书有效期大多一年,到期前CA机构发送续费提醒,不要把提醒邮件当成垃圾邮件忽略。私钥文件不要明文保存在服务器,禁止上传到公开代码仓库。私钥一旦泄露,其他人可以伪造站点,后果比证书过期严重得多。

证书申请失败原因集中在几类。DNS验证场景,解析记录填写错误、添加记录之后没有等待生效就提交审核、复制记录值带入多余空格,都会校验失败。文件验证场景,文件存放目录不对、防火墙拦截CA访问、文件权限限制外部读取。还有一种情况域名配置CAA解析记录,CAA记录限定允许签发证书的CA机构,使用的CA不在名单内就会驳回申请,在DNS后台删除CAA记录或是添加对应CA即可。

企业申请OV或者EV证书,信息填写环节容易出错。企业名称必须和营业执照完全一致,填写简称或是多余后缀会驳回审核。联系电话、邮箱填写真实有效信息,CA机构可能电话核验。这些细节看着琐碎,一旦驳回重新提交会耽误时间,遇上项目上线节点影响更大。

免费证书和付费证书没有绝对优劣。个人博客、开发测试站点、预算有限的小型站点,Let's Encrypt完全可以满足需求,功能和付费DV证书没有本质差别。企业官网如果需要浏览器展示组织信息,或是行业存在合规硬性要求,可以办理付费OV证书。九十天有效期的免费证书,重点要持续监控自动续期状态,不要等到证书过期,站点被标记不安全才发现问题。

免责声明:本文提供的方法与建议仅供技术参考,实际部署效果受机房环境、运营商线路、系统配置等多重因素影响。请在专业人员指导下操作,因自行操作导致的业务损失本站不承担责任。

相关推荐