Hi Frank and all,
After digging deeper with the Skype for Business team, we found that there was a misconfiguration on their side. The SfB server was using a self-signed certificate for the client connections, while I was able to verify their server certificate.
This was automatically decided by the Skype server because the certificate template was missing an obscure field…..just Microsoft things I guess….¯_(ツ)_/¯
Thanks for the help anyway!
Cheers, Francisco.
From: sr-users [mailto:sr-users-bounces@lists.kamailio.org] On Behalf Of Frank Carmickle Sent: Monday, October 30, 2017 18:51 To: Kamailio (SER) - Users Mailing List sr-users@lists.kamailio.org Subject: Re: [SR-Users] Mutual TLS with Skype for Business 2015
Francisco,
Please share your s_client command and output that is connecting appropriately.
--FC
On Oct 30, 2017, at 1:43 PM, Daniel-Constantin Mierla <miconda@gmail.commailto:miconda@gmail.com> wrote:
Hello,
On 27.10.17 17:12, Francisco Valentin Vinagrero wrote: Hi all,
I’m still stuck with this even if I built a new VM to avoid any buggy configuration.
Some thoughts on this:
1. I have tried to change verify_certificate = no on my server section of tls.cfg, so ideally the remote certificate will not be verified, but this is not changing anything. to understand properly, even if you have verify_certificate = no, the certificated is verified and fails?
Otherwise I don't have access to Skype for Business 2015, so I cannot troubleshoot much.
Cheers, Daniel
2. My Kamailio cluster is part of a DNS alias, but the alias is defined as alias=<myalias>:5061 in the Kamailio.cfg. Could this be affecting somehow the verification? My tls.cfg only has server:default and client:default section.
3. Every time I reload the configuration, the TLS info and debug messages for client and server are coherent with what I would expect from my tls.cfg:
INFO: tls [tls_domain.c:278]: fill_missing(): TLSs<default>: tls_method=20 INFO: tls [tls_domain.c:290]: fill_missing(): TLSs<default>: certificate='/usr/local/etc/kamailio/tls/myCert.pem' INFO: tls [tls_domain.c:297]: fill_missing(): TLSs<default>: ca_list='/usr/local/etc/kamailio/tls/myCAfile.pem' INFO: tls [tls_domain.c:304]: fill_missing(): TLSs<default>: crl='(null)' INFO: tls [tls_domain.c:308]: fill_missing(): TLSs<default>: require_certificate=1 INFO: tls [tls_domain.c:315]: fill_missing(): TLSs<default>: cipher_list='(null)' INFO: tls [tls_domain.c:322]: fill_missing(): TLSs<default>: private_key='/usr/local/etc/kamailio/tls/myKey.pem' INFO: tls [tls_domain.c:326]: fill_missing(): TLSs<default>: verify_certificate=1 INFO: tls [tls_domain.c:329]: fill_missing(): TLSs<default>: verify_depth=9 DEBUG: tls [tls_domain.c:968]: fix_domain(): using tls methods range: 20 DEBUG: tls [tls_domain.c:566]: load_crl(): TLSs<default>: No CRL configured INFO: tls [tls_domain.c:658]: set_verification(): TLSs<default>: Client MUST present valid certificate INFO: tls [tls_domain.c:278]: fill_missing(): TLSc<default>: tls_method=20 INFO: tls [tls_domain.c:290]: fill_missing(): TLSc<default>: certificate='/usr/local/etc/kamailio/tls/myCert.pem' INFO: tls [tls_domain.c:297]: fill_missing(): TLSc<default>: ca_list='/usr/local/etc/kamailio/tls/myCAfile.pem' INFO: tls [tls_domain.c:304]: fill_missing(): TLSc<default>: crl='(null)' INFO: tls [tls_domain.c:308]: fill_missing(): TLSc<default>: require_certificate=1 INFO: tls [tls_domain.c:315]: fill_missing(): TLSc<default>: cipher_list='(null)' INFO: tls [tls_domain.c:322]: fill_missing(): TLSc<default>: private_key='/usr/local/etc/kamailio/tls/myKey.pem' INFO: tls [tls_domain.c:326]: fill_missing(): TLSc<default>: verify_certificate=1 INFO: tls [tls_domain.c:329]: fill_missing(): TLSc<default>: verify_depth=9 DEBUG: tls [tls_domain.c:968]: fix_domain(): using tls methods range: 20 DEBUG: tls [tls_domain.c:566]: load_crl(): TLSc<default>: No CRL configured INFO: tls [tls_domain.c:658]: set_verification(): TLSc<default>: Server MUST present valid certificate DEBUG: tls [tls_domain.c:1119]: load_private_key(): TLSs<default>: Key '/usr/local/etc/kamailio/tls/myKey.pem' successfuly loaded DEBUG: tls [tls_domain.c:1119]: load_private_key(): TLSc<default>: Key '/usr/local/etc/kamailio/tls/myKey.pem' successfuly loaded DEBUG: tls [tls_rpc.c:82]: tls_reload(): TLS configuration successfuly loaded
4. When the first handshake begins after reloading, it goes to the TLSs default domain:
DEBUG: <core> [ip_addr.c:229]: print_ip(): tcpconn_new: new tcp connection: 188.185.115.181 DEBUG: <core> [tcp_main.c:985]: tcpconn_new(): on port 56404, type 3 DEBUG: <core> [tcp_main.c:1295]: tcpconn_add(): hashes: 2351:1920:1122, 168 DEBUG: <core> [io_wait.h:376]: io_watch_add(): DBG: io_watch_add(0xa25be0, 30, 2, 0x7ff243558420), fd_no=21 DEBUG: <core> [io_wait.h:598]: io_watch_del(): DBG: io_watch_del (0xa25be0, 30, -1, 0x0) fd_no=22 called DEBUG: <core> [tcp_main.c:4131]: handle_tcpconn_ev(): sending to child, events 1 DEBUG: <core> [tcp_main.c:3813]: send2child(): selected tcp worker 2 13(13472) for activity on [tls:<myLocalIP>:5061], 0x7ff243558420 DEBUG: <core> [tcp_read.c:1566]: handle_io(): received n=8 con=0x7ff243558420, fd=8 DEBUG: tls [tls_server.c:197]: tls_complete_init(): completing tls connection initialization DEBUG: tls [tls_server.c:226]: tls_complete_init(): Using initial TLS domain TLSs<default> (dom 0x7ff242d79b40 ctx 0x7ff2430cc448 sn [])
5. I wonder if anyone has configured this with Skype for Business 2015 lately? Any clue?
Cheers, Francisco.
--
Daniel-Constantin Mierla
www.twitter.com/micondahttp://www.twitter.com/miconda -- www.linkedin.com/in/micondahttp://www.linkedin.com/in/miconda
Kamailio Advanced Training, Nov 13-15, 2017, in Berlin - www.asipto.comhttp://www.asipto.com/
Kamailio World Conference - www.kamailioworld.comhttp://www.kamailioworld.com/ _______________________________________________ Kamailio (SER) - Users Mailing List sr-users@lists.kamailio.orgmailto:sr-users@lists.kamailio.org https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users