申请并部署商业ssl证书实现apache全站https访问需三步:选对证书类型(ov/ev/通配符/san)、完成ca验证(dns/文件/邮箱)、正确配置apache(启用mod_ssl、443端口虚拟主机、强制http跳转),全程手动可控,适合生产环境。

申请并部署商业SSL证书实现Apache全站HTTPS访问,核心是三步:选对证书类型 → 完成CA验证 → 正确配置Apache启用443端口与SSL模块。整个过程不依赖第三方脚本,全程手动可控,适合生产环境长期稳定运行。
一、选型与申请:按业务需求匹配证书类型
商业SSL证书由DigiCert、GlobalSign、GeoTrust等权威CA签发,需付费购买,但提供OV/EV验证、1–2年有效期、专业技术支持和高信任度标识(如浏览器地址栏显示企业名称)。
- 单域名证书:保护一个精确域名(如 www.example.com),不包含根域(example.com)或子域;适合仅有一个主站的中小企业
- 通配符证书(*.example.com):覆盖主域及其所有一级子域(shop.example.com、blog.example.com),但不覆盖二级子域(a.b.example.com);适合多子系统架构
- 多域名SAN证书:一张证书可绑定5–100个不同主域名(如 example.com、example.cn、app.io),统一管理续期;适合品牌矩阵或跨国站点
申请时需准备CSR(证书签名请求)文件,用OpenSSL生成:
openssl req -new -newkey rsa:2048 -nodes -keyout example.com.key -out example.com.csr
填写组织名称、城市、国家等信息必须与营业执照一致(OV/EV必需),生成后直接提交至CA控制台。
二、域名验证:完成CA审核才能签发证书
商业CA通常提供三种验证方式,选择一种即可,推荐优先使用DNS验证(最快且无需停站):
- DNS验证:CA提供一条TXT记录(如 _acme-challenge.example.com → “xxxxx”),你登录域名DNS服务商添加该记录,CA自动轮询检测,通常5–30分钟通过
- 文件验证:CA提供一段随机字符串和路径(如 /.well-known/pki-validation/file.txt),你将文件上传至网站根目录对应位置,确保可通过HTTP直接访问
- 邮箱验证:CA向域名WHOIS注册邮箱(如 admin@example.com、hostmaster@example.com)发送确认链接,点击即完成;适用于个人站长
验证通过后,CA会邮件通知下载证书包,解压后你会得到三个关键文件:
- example.com.crt —— 域名公钥证书(你的站点证书)
- example.com.key —— 私钥文件(严禁泄露,不可重命名或修改内容)
- ca_bundle.crt 或 intermediate.crt —— 中级证书链(用于构建完整信任链)
三、Apache部署:配置SSL模块+虚拟主机+强制跳转
确保Apache已启用mod_ssl模块,并监听443端口。操作分四步:
- 上传证书文件:将上述三个文件拷贝到服务器安全路径,例如 /etc/httpd/ssl/(CentOS)或 /etc/apache2/ssl/(Ubuntu)
-
启用SSL模块与端口:编辑 httpd.conf 或 apache2.conf,确认以下两行未被注释:
LoadModule ssl_module modules/mod_ssl.so<br>Listen 443
-
配置HTTPS虚拟主机:在站点配置文件(如 /etc/httpd/conf.d/example.com.conf)中添加:
<virtualhost><br> ServerName example.com<br> ServerAlias www.example.com<br> DocumentRoot /var/www/example<br> SSLEngine on<br> SSLCertificateFile /etc/httpd/ssl/example.com.crt<br> SSLCertificateKeyFile /etc/httpd/ssl/example.com.key<br> SSLCertificateChainFile /etc/httpd/ssl/ca_bundle.crt<br> SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1<br> SSLCipherSuite ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384<br></virtualhost>
-
强制HTTP跳转HTTPS:在同一配置中补充80端口重定向规则:
<virtualhost><br> ServerName example.com<br> Redirect permanent / https://example.com/<br></virtualhost>
最后重启服务生效:
sudo systemctl restart httpd # CentOS/RHEL<br>sudo systemctl restart apache2 # Ubuntu/Debian
四、验证与加固:确保部署真正有效
部署完成后,立即验证三项关键指标:
- 浏览器访问 https://example.com,确认地址栏显示锁形图标,点击可查看证书颁发者与有效期
- 使用在线工具检测:SSL Labs Test(评分应达A或A+),重点检查协议支持(TLS 1.2/1.3)、密钥交换强度、是否禁用弱加密套件
- 检查HTTP是否自动跳转:访问 http://example.com,应301重定向至HTTPS,且无混合内容警告(所有资源加载均为https)
常见问题提示:若页面报错“SSL_ERROR_BAD_CERT_DOMAIN”,检查证书域名是否完全匹配(含www);若提示“SEC_ERROR_UNKNOWN_ISSUER”,说明中级证书链未正确配置或路径错误。











