Azure上Curity社区版SSL证书配置问题咨询
针对Curity社区版Azure部署SSL及代理问题的解决方案
1. 正确配置有效SSL证书
Curity Admin生成的是自签名证书,仅适合测试场景,浏览器默认会标记为无效。要配置可信证书,按以下步骤操作:
- 从可信CA获取包含完整证书链(服务器证书+中间证书+根证书)和私钥的证书文件,推荐格式为PKCS#12(
.pfx) - 登录Curity Admin UI,进入System > Certificates,点击Add > PKCS#12 Certificate
- 上传
.pfx文件并输入密码,确保证书的有效期、域名匹配当前实例的访问域名 - 进入System > Listeners,选择对应的HTTPS监听端口,在SSL Settings中选择刚上传的证书
- 保存配置并重启Curity实例,访问时证书即可被浏览器信任
如果必须使用自签名证书(仅测试),需将Curity生成的根证书导入客户端浏览器/系统的信任存储中。
2. 复用已有通配符证书
通配符证书需转换为Curity支持的格式并正确上传:
- 如果你的通配符证书是PEM格式(
.pem/.key文件),先转换为PKCS#12格式:
执行时需设置导出密码,记住该密码用于后续上传openssl pkcs12 -export -in fullchain.pem -inkey privkey.pem -out wildcard-cert.pfx - 按照上述问题1的步骤上传
.pfx文件到Curity的证书管理模块 - 在HTTPS监听端口的SSL设置中选择该通配符证书,确保通配符域名(如
*.yourdomain.com)覆盖Curity实例的访问域名
3. 禁用Curity HTTPS,使用代理处理
可以实现,但需正确配置代理和Curity的转发头支持,解决Cookie丢失及无效请求问题:
Curity端配置
- 进入System > Listeners,将原HTTPS监听端口改为HTTP(修改端口协议为HTTP,调整端口号如8080)
- 进入System > Settings > General,启用Forwarded Headers选项,信任代理发送的
X-Forwarded-*头信息 - 保存配置并重启Curity
NGINX代理配置
确保NGINX转发所有必要的头信息,示例配置如下:
server { listen 443 ssl; server_name your-curity-domain.com; ssl_certificate /path/to/wildcard.crt; ssl_certificate_key /path/to/wildcard.key; location / { proxy_pass http://curity-instance-ip:8080; # 转发核心头信息,让Curity识别原始请求的协议、域名和端口 proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-Port $server_port; proxy_set_header Host $host; # 确保Cookie传递正确,添加Secure标记适配HTTPS proxy_cookie_path / "/; secure; HttpOnly"; proxy_pass_request_headers on; } }
- 替换示例中的域名、证书路径、Curity实例IP/端口为实际信息
- 重启NGINX后,所有HTTPS请求会被转发到Curity的HTTP端口,Curity会基于转发头生成正确的重定向URL和Cookie
常见问题排查
- 上传证书链报错:检查证书是否包含私钥、证书链顺序是否正确(服务器证书在前,中间证书在后,根证书最后)、文件格式是否为PKCS#12或PEM(需同时上传证书和私钥)
- NGINX代理后Cookie丢失:确保已配置
proxy_cookie_path添加Secure标记,且Curity启用了Forwarded Headers,生成的Cookie域名匹配代理域名
内容的提问来源于stack exchange,提问作者Ameesh Trikha
相关产品推荐
相关产品推荐

