On Mon, October 10, 2016 6:01 am, Radek wrote:
>
> The second thing to do is enabling wesites' SSL/TLS certs.
> Each website has its own certificate on its server. I suppose that I have
> to configure man-in-the-middle "TLS inspecion" mode to enable TLS
> connection using these certs again.
> Am I right?
>

No.  TLS inspection doesn't work that way.  It's for LAN systems
connecting out through the relayd server to sites on the internet.  It
doesn't work in the other direction.  You would have needed to use
'forward to destination' in place of 'forward to <www_101>' but that
original destination will be the relayd machine again as it's IP based,
not domain name based.

You need one certificate that matches all of your web site hostnames and
configure relayd as a TLS server as you had it.

Tim.

> I did the following conf:
>
> #grep divert /etc/pf.conf
> pass in on $ext_if inet proto tcp to port 443 divert-to localhost port
> 8443
>
> #openssl req -x509 -days 365 -newkey rsa:2048 -keyout
> /etc/ssl/private/ca.key -out /etc/ssl/ca.crt
> #openssl req -nodes -x509 -days 365 -newkey rsa:2048 -keyout
> /etc/ssl/private/127.0.0.1.key -out /etc/ssl/127.0.0.1.crt
>
> #ls -la /etc/ssl/*.crt
> -rwxr-x---  1 root  _relayd  1298 Oct 10 09:29 /etc/ssl/127.0.0.1.crt
> -rwxr-x---  1 root  _relayd  1371 Oct  6 13:11 /etc/ssl/ca.crt
>
> #ls -la /etc/ssl/private/*.key
> -rwxr-x---  1 root  _relayd  1704 Oct 10 09:29
> /etc/ssl/private/127.0.0.1.key
> -rwxr-x---  1 root  _relayd  1858 Oct  6 13:11 /etc/ssl/private/ca.key
>
> #cat /etc/relayd.conf
> ext_addr="msk0"
> host1="10.0.30.101"
> host2="10.0.30.201"
>
> table <www_101> { $host1 }
> table <www_201> { $host2 }
>
> http protocol "web_one" {
>    return error
>    pass request header "Host" value "1.domain.com" forward to <www_101>
>    pass request header "Host" value "2.domain.com" forward to <www_101>
>    pass request header "Host" value "3.domain.com" forward to <www_101>
>
>    pass request header "Host" value "4.domain.com" forward to <www_201>
>    pass request header "Host" value "5.domain.com" forward to <www_201>
>    pass request header "Host" value "6.domain.com" forward to <www_201>
> }
>
> http protocol "web_tls" {
>    return error
>    pass request header "Host" value "1.domain.com" forward to <www_101>
>    pass request header "Host" value "2.domain.com" forward to <www_101>
>    pass request header "Host" value "3.domain.com" forward to <www_101>
>
>    pass request header "Host" value "4.domain.com" forward to <www_201>
>    pass request header "Host" value "5.domain.com" forward to <www_201>
>    pass request header "Host" value "6.domain.com" forward to <www_201>
>    tls tlsv1
>    tls ca key "/etc/ssl/private/ca.key" password "somepasshere"
>    tls ca cert "/etc/ssl/ca.crt"
> }
>
> relay relay_one {
>    listen on $ext_addr port 80
>    protocol "web_one"
>    forward to <www_101> check tcp port 80
>    forward to <www_201> check tcp port 80
> }
>
> relay relay_tls {
>    listen on 127.0.0.1 port 8443 tls
>    protocol "web_tls"
>    forward with tls to <www_101> check tcp port 443
>    forward with tls to <www_201> check tcp port 443
> }
>
>
> #relayctl show relays
> Id      Type            Name                            Avlblty Status
> 1       relay           relay_one                               active
> 2       relay           relay_tls                               active
>
> #relayctl show summary
> Id      Type            Name                            Avlblty Status
> 1       relay           relay_one                               active
> 1       table           www_101:80                              active (1
> hosts)
> 1       host            10.0.30.101                     100.00% up
> 2       table           www_201:80                              active (1
> hosts)
> 2       host            10.0.30.201                     100.00% up
> 2       relay           relay_tls                               active
> 3       table           www_101:443                             active (1
> hosts)
> 3       host            10.0.30.101                     100.00% up
> 4       table           www_201:443                             active (1
> hosts)
> 4       host            10.0.30.201                     100.00% up
>
> Websites (https://4.domain, https://5.domain, https://6.domain) started to
> show the content of 1.domain.com
>
> If I changed the order of "forward" websites (https://1.domain,
> https://2.domain, https://3.domain) started to show content of
> 4.domain.com
>
> relay relay_tls {
>    listen on 127.0.0.1 port 8443 tls
>    protocol "web_tls"
>    forward with tls to <www_201> check tcp port 443
>    forward with tls to <www_101> check tcp port 443
> }
>
> All domains use relay_machine's certificate instead of the specific
> domain's cert.
>
> What am I doing wrong?

Reply via email to