2024-01-15 03:34:12
HTTPS/HTTP协议常见问题及解答如下:
HTTPS端口相关转换示例:
openssl pkcs12 -in cert.pfx -out cert.pem -nodes # PFX转PEM单向认证:仅需上传服务器证书到负载均衡的证书管理系统。
双向认证:需同时上传服务器证书和CA证书。
服务器证书:用于浏览器验证服务器身份。
CA证书:用于服务器验证客户端证书(如用户证书)。
服务器证书:由受信任的CA签发,浏览器通过验证该证书确认服务器合法性。
CA证书:服务器用其验证客户端证书。若客户端证书未由该CA签发,连接将被拒绝。
双向认证流程:
客户端请求连接,服务器发送CA证书要求。
客户端发送客户端证书,服务器用CA证书验证其有效性。
验证通过后建立加密连接。
默认设置为300秒(5分钟)。
作用:通过加密的Ticket(含会话密钥等信息)实现TLS会话复用,减少重复握手开销。
流程:
初始握手时,服务器发送Ticket至客户端。
客户端后续连接时发送Ticket,服务器解密后复用会话。
线上SLB七层HTTPS使用ECDHE算法(支持前向保密),不支持上传DHE算法的DH参数文件(如含BEGIN DH PARAMETERS的PEM文件)。
原因:ECDHE已提供足够安全性,无需额外配置。
问题:SLB HTTPS监听无法通过SNI实现一个服务器绑定多个域名证书。
解决方案:改用TCP监听,并在后端ECS服务器上配置SNI功能。
创建HTTP监听时,开启附加HTTP头字段(如X-Forwarded-Proto)。
后端ECS通过检查该字段值:
若为http,则返回HTTPS重定向响应(如301 Moved Permanently)。
示例代码(Nginx):
if ($http_x_forwarded_proto = "http") { return 301 https://$host$request_uri;}原因:页面中嵌入了HTTP资源(如图片、脚本)。
解决方案:
检查页面所有资源链接,确保均为HTTPS。
使用相对路径或协议无关的URL(如//example.com/image.jpg)。
通过浏览器开发者工具(Network面板)排查混合内容。
现象:浏览器提示“证书无效”或连接失败。
检查项:
证书有效期(通过openssl x509 -in cert.pem -noout -dates查看)。
证书链完整性(确保中间证书已正确配置)。
启用HTTP/2(需HTTPS支持)以减少连接开销。
使用OCSP Stapling加速证书状态验证。
配置HSTS(HTTP Strict Transport Security)强制浏览器使用HTTPS。