使用SSL为Spring Boot应用程序配置Haproxy

时间:2018-04-20 08:47:19

标签: spring-boot ssl https haproxy

过去几天我一直在努力设置我的应用程序以使用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过程。谢谢你的任何建议。

0 个答案:

没有答案