过去几天我一直在努力设置我的应用程序以使用SSL,我为我的域生成了带有自签名证书的密钥库,但我不确定是否应该在Haproxy端或应用程序中处理重定向。 我的 application.yml 如下所示:
server:
port: 8080
contextPath: /backend
ssl:
enabled: true
key-store: /home/gftcv_keystore.jks
key-store-password: password
那将是应用程序,我有点困惑我是否应该从具有特定配置bean的http添加重定向到https,或者我是否应该使用Haproxy用于此目的,因为我已经将它用于负载平衡。 以下是我的conf文件示例:
global
defaults
mode http
timeout connect 5000ms
timeout client 50000ms
timeout server 50000ms
resolvers docker
nameserver dns *server_ip*
resolve_retries 3
timeout retry 1s
hold valid 10s
frontend http-in
bind *:80
use_backend backend-group if { path_beg -i /backend }
use_backend frontend-group if { path_beg -i /frontend or path_beg -i /static }
http-request set-path /backend if { path -i / }
backend frontend-group
reqrep ^([^\ ]*\ /)frontend[/]?(.*) \1\2
server frontend-service frontend:3000 resolvers docker check
backend backend-group
redirect scheme https if !{ ssl_fc } # redirects HTTP requests to HTTPS
server backend-server backend:8080 resolvers docker ssl verify required ca-file /home/gftcv_keystore.jks
listen http-stats
bind *:9090
mode http
stats enable
stats refresh 15s
stats uri /stats
stats auth benchadm:benchpass
stats realm Proxy\ Statistics
stats admin if TRUE
问题
我是否需要在使用密钥库导入的后端服务器上获得与haproxy中使用的相同的证书?根据我的阅读,haproxy更喜欢.pem证书扩展。或者我应该让应用程序处理ssl并且不参与haproxy过程。谢谢你的任何建议。