1. 准备工作与前提说明
- 确认购买的虚拟主机为CN2线路的香港主机,且支持自定义证书上传或内置Let’s Encrypt。
- 准备好域名,域名的A记录需指向主机的公网IP(通常在主机控制面板可查看)。
- 备份网站文件与配置,记录当前的Apache/Nginx配置文件路径与控制面板登录信息。
2. 在域名解析中添加A记录
- 登录域名管理后台,新增或修改A记录,主机记录为@或www,值为虚拟主机IP。
- 生效后通过ping或nslookup确认解析到目标IP:ping yourdomain.com。解析通常在几分钟至24小时内生效。
3. 选择证书来源:Let’s Encrypt或付费CA
- 推荐新手优先使用Let’s Encrypt(免费、自动),前提是主机面板支持自动签发;如果面板不支持,可用CSR手动申请或使用付费证书。
- 若需通配符证书或更高保障,可选择付费CA(购证后会收到CRT与CA链文件)。
4. 生成CSR与私钥(若需手动申请证书)
- 在本地或服务器使用OpenSSL生成:openssl genrsa -out yourdomain.key 2048
- 生成CSR:openssl req -new -key yourdomain.key -out yourdomain.csr,按提示填写CN(填写主域名,如 yourdomain.com)、组织等信息。
- 保存好yourdomain.key(私钥),不要泄露;将yourdomain.csr提交给证书颁发机构。
5. 在控制面板申请或上传证书
- 若主机面板支持“一键Let’s Encrypt”,直接选择域名并启用SSL,等待自动验证并安装(通常几分钟)。
- 若为手动安装:在面板的SSL管理处上传CRT/证书链和对应的私钥(yourdomain.key),并保存应用。注意CRT需包含完整链(CA bundle)。
6. 手工在Apache或Nginx上配置HTTPS(可选)
- Apache示例(虚拟主机文件):
-
<VirtualHost *:443> ServerName yourdomain.com SSLEngine on SSLCertificateFile /path/yourdomain.crt SSLCertificateKeyFile /path/yourdomain.key SSLCertificateChainFile /path/ca-bundle.crt DocumentRoot /var/www/yourdomain </VirtualHost>
- Nginx示例:
-
server { listen 443 ssl; server_name yourdomain.com; ssl_certificate /path/yourdomain.crt; ssl_certificate_key /path/yourdomain.key; root /var/www/yourdomain; }
- 保存配置后重启服务:Apache 使用 systemctl restart apache2 或 service httpd restart;Nginx 使用 systemctl restart nginx。
7. 配置HTTP到HTTPS的强制跳转
- 如果使用Apache,可在80端口虚拟主机或.htaccess中加入Rewrite规则:
-
RewriteEngine On RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
- Nginx在80端口server块中加入:
-
return 301 https://$host$request_uri;
- 保存并重启服务,测试http://yourdomain.com是否自动跳转到https。
8. 检查证书与页面混合内容
- 使用浏览器打开https://yourdomain.com,查看锁形图标,点击查看证书详情:有效期、颁发机构是否正确。
- 若出现“混合内容”警告,检查页面内的资源(图片、CSS、JS)是否仍使用http链接,改为相对路径或https地址。可使用浏览器开发者工具(Console)定位具体资源。
9. 验证与自动续签
- 用命令行检查:openssl s_client -connect yourdomain.com:443 -showcerts,确认证书链正确。
- Let’s Encrypt证书有效期90天,建议启用自动续签(Certbot或面板自带计划任务)。若手动续签,提前30天开始更新并替换证书文件。
- 使用第三方工具(如Qualys SSL Labs)做综合测试,查看协议支持、弱点与评分。
10. 常见问题:为什么浏览器显示“不安全”?(问)
- 问:浏览器仍显示“不安全”或有跨域安全警告,该如何排查?
11. 常见问题解答:浏览器显示“不安全”的解决办法(答)
- 答:先看证书是否正确安装与未过期,再检查证书链(CA bundle)是否完整;其次检查页面资源是否存在http混合内容;最后确认DNS解析到了正确IP并且没有中间人代理。按上述步骤逐项排查并修复即可。
12. 常见问题:如何处理证书安装失败或面板不支持?(问)
- 问:如果主机控制面板不支持上传证书或Let’s Encrypt,怎么办?
13. 常见问题解答:无面板支持时的替代方案(答)
- 答:可以联系主机商请求开通或帮忙安装证书;或者使用反向代理(如在VPS上配置Nginx反向代理并启用SSL,然后代理到香港虚拟主机的HTTP);另可换用支持免费SSL的主机或CDN(如Cloudflare的Flexible/Full模式,但需注意配置差异)。
14. 额外提示:安全与性能优化(问)
- 问:配置HTTPS后还有哪些推荐的安全或性能设置?
15. 额外提示解答:安全与性能优化建议(答)
- 答:启用HTTP/2(需证书且服务端支持)、启用HSTS(慎用,确保所有子域均支持HTTPS时设置:add_header Strict-Transport-Security "max-age=31536000; includeSubDomains";)、禁用弱加密套件并优先使用TLS1.2/1.3;启用Gzip/Brotli压缩与缓存策略提升性能。
来源:新手教程在cn2 香港虚拟主机 ssl上配置HTTPS的步骤