<div dir="ltr"><a href="http://jira.freeswitch.org/browse/FS-5725">http://jira.freeswitch.org/browse/FS-5725</a><br></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Thu, Aug 22, 2013 at 12:03 PM, Kristian Kielhofner <span dir="ltr">&lt;<a href="mailto:kris@kriskinc.com" target="_blank">kris@kriskinc.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Answering my own post:<div><br></div><div>After cranking up Sofia debugging and reading through source Sofia really wants to see &quot;-extensions server&quot; on the &quot;server&quot; generated cert in this case, which makes sense but it&#39;s also problematic because any SIP UA can be a &quot;server&quot; or &quot;client&quot; with different keys (with full validation) and as far as I can tell FreeSWITCH only allows for one key+cert per profile (which can be a &quot;client&quot; or &quot;server&quot;).</div>


<div><br></div><div>Kamailio provides for completely separate client and server TLS configuration, including key, cert, CA, CRL, etc, etc.</div><div><br></div><div>Is there a mechanism to provide different client and server certs per profile with Sofia?  It looks like that&#39;s the only way this is going to work.</div>

<div><br></div><div>Thanks!</div></div><div class="gmail_extra"><div><div class="h5"><br><br><div class="gmail_quote">On Wed, Aug 21, 2013 at 5:22 PM, Kristian Kielhofner <span dir="ltr">&lt;<a href="mailto:kris@kriskinc.com" target="_blank">kris@kriskinc.com</a>&gt;</span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Good question!<br>
<br>
I&#39;ve tried a variety of certs, going all the way back to the CA.  I<br>
started with your gentls_cert script and eventually moved to the<br>
openvpn-style &quot;easy-rsa&quot; package.  I will tell you that using<br>
identical certs with a TLS-capable pjsip pjsua client results in a<br>
successful TLS connection to Kamailio (using the same CA cert, client<br>
cert, and client key used in FreeSWITCH).  Of course I&#39;m not changing<br>
the config in Kamailio either.<br>
<div><div><br>
On Wed, Aug 21, 2013 at 5:03 PM, Brian West &lt;<a href="mailto:brian@freeswitch.org" target="_blank">brian@freeswitch.org</a>&gt; wrote:<br>
&gt; How art thou generated the certs?<br>
&gt;<br>
&gt; On Aug 21, 2013, at 3:38 PM, Kristian Kielhofner &lt;<a href="mailto:kris@kriskinc.com" target="_blank">kris@kriskinc.com</a>&gt; wrote:<br>
&gt;<br>
&gt;&gt; Hello,<br>
&gt;&gt;<br>
&gt;&gt;  I&#39;m trying to get TLS cert validation between FreeSWITCH (client)<br>
&gt;&gt; and Kamailio (server) up and running.  Here&#39;s my config/setup so far:<br>
&gt;&gt;<br>
&gt;&gt; FreeSWITCH 1.2.12 (client) configured with:<br>
&gt;&gt;<br>
&gt;&gt;    &lt;!-- TLS: disabled by default, set to &quot;true&quot; to enable --&gt;<br>
&gt;&gt;    &lt;param name=&quot;tls&quot; value=&quot;true&quot;/&gt;<br>
&gt;&gt;    &lt;!-- additional bind parameters for TLS --&gt;<br>
&gt;&gt;    &lt;param name=&quot;tls-bind-params&quot; value=&quot;transport=tls&quot;/&gt;<br>
&gt;&gt;    &lt;!-- Port to listen on for TLS requests. (5061 will be used if<br>
&gt;&gt; unspecified) --&gt;<br>
&gt;&gt;    &lt;param name=&quot;tls-sip-port&quot; value=&quot;5081&quot;/&gt;<br>
&gt;&gt;    &lt;!-- Location of the agent.pem and cafile.pem ssl certificates<br>
&gt;&gt; (needed for TLS server) --&gt;<br>
&gt;&gt;    &lt;param name=&quot;tls-cert-dir&quot; value=&quot;[my cert dir]&quot;/&gt;<br>
&gt;&gt;    &lt;!-- TLS version (&quot;sslv23&quot; (default), &quot;tlsv1&quot;). NOTE: Phones may<br>
&gt;&gt; not work with TLSv1 --&gt;<br>
&gt;&gt;    &lt;param name=&quot;tls-version&quot; value=&quot;tlsv1&quot;/&gt;<br>
&gt;&gt;    &lt;param name=&quot;tls-verify-policy&quot; value=&quot;out&quot;/&gt;<br>
&gt;&gt;<br>
&gt;&gt; I have a gateway configured with ;transport=tls<br>
&gt;&gt;<br>
&gt;&gt; Kamailio 4.0 (also tried 4.1, etc) configured with (tls.cfg):<br>
&gt;&gt;<br>
&gt;&gt; [server:default]<br>
&gt;&gt; method = TLSv1<br>
&gt;&gt; verify_certificate = no<br>
&gt;&gt; require_certificate = yes<br>
&gt;&gt; private_key = /etc/kamailio/generic-sip.key<br>
&gt;&gt; certificate = /etc/kamailio/generic-sip.pem<br>
&gt;&gt; ca_list = /etc/kamailio/generic-cacert.pem<br>
&gt;&gt; cipher_list = AES<br>
&gt;&gt;<br>
&gt;&gt;  I&#39;m using my own CA with self-signed certs.  I&#39;ve verified that they<br>
&gt;&gt; check out by comparing the modulus on the cert and key pairs and<br>
&gt;&gt; verifying the CA chain with &#39;openssl verify ...&#39;.<br>
&gt;&gt;<br>
&gt;&gt;  When I run without tls-verify-policy=none and require_certificate=no<br>
&gt;&gt; everything is golden and TLS works all day long.  However, this is<br>
&gt;&gt; less than ideal and I&#39;d like to at least make sure that my TLS clients<br>
&gt;&gt; are presenting a valid cert.  Unfortunately when FS tries to connect<br>
&gt;&gt; to Kamailio it reports the following errors:<br>
&gt;&gt;<br>
&gt;&gt; ERROR: tls [tls_server.c:1190]: TLS accept:error:140890B2:SSL<br>
&gt;&gt; routines:SSL3_GET_CLIENT_CERTIFICATE:no certificate returned<br>
&gt;&gt; ERROR: &lt;core&gt; [tcp_read.c:1275]: ERROR: tcp_read_req: error reading<br>
&gt;&gt;<br>
&gt;&gt;  What&#39;s interesting is that FreeSWITCH reports a successful<br>
&gt;&gt; registration and seems to exchange OPTIONS pings (over UDP!) with the<br>
&gt;&gt; remote Kamailio instance.  However, Kamailio does not show the<br>
&gt;&gt; endpoint as registered (verified with &#39;kamctl ul show&#39;).  That seems<br>
&gt;&gt; like a bug and worthy of a JIRA but my main concern at this point is<br>
&gt;&gt; getting TLS with certificate validation up and running.<br>
&gt;&gt;<br>
&gt;&gt;  Any ideas?  Thanks!<br>
&gt;&gt;<br>
&gt;&gt; --<br>
&gt;&gt; Kristian Kielhofner<br>
&gt;&gt;<br>
&gt;&gt; _________________________________________________________________________<br>
&gt;&gt; Professional FreeSWITCH Consulting Services:<br>
&gt;&gt; <a href="mailto:consulting@freeswitch.org" target="_blank">consulting@freeswitch.org</a><br>
&gt;&gt; <a href="http://www.freeswitchsolutions.com" target="_blank">http://www.freeswitchsolutions.com</a><br>
&gt;&gt;<br>
&gt;&gt; FreeSWITCH-powered IP PBX: The CudaTel Communication Server<br>
&gt;&gt; <a href="http://www.cudatel.com" target="_blank">http://www.cudatel.com</a><br>
&gt;&gt;<br>
&gt;&gt; Official FreeSWITCH Sites<br>
&gt;&gt; <a href="http://www.freeswitch.org" target="_blank">http://www.freeswitch.org</a><br>
&gt;&gt; <a href="http://wiki.freeswitch.org" target="_blank">http://wiki.freeswitch.org</a><br>
&gt;&gt; <a href="http://www.cluecon.com" target="_blank">http://www.cluecon.com</a><br>
&gt;&gt;<br>
&gt;&gt; FreeSWITCH-users mailing list<br>
&gt;&gt; <a href="mailto:FreeSWITCH-users@lists.freeswitch.org" target="_blank">FreeSWITCH-users@lists.freeswitch.org</a><br>
&gt;&gt; <a href="http://lists.freeswitch.org/mailman/listinfo/freeswitch-users" target="_blank">http://lists.freeswitch.org/mailman/listinfo/freeswitch-users</a><br>
&gt;&gt; UNSUBSCRIBE:<a href="http://lists.freeswitch.org/mailman/options/freeswitch-users" target="_blank">http://lists.freeswitch.org/mailman/options/freeswitch-users</a><br>
&gt;&gt; <a href="http://www.freeswitch.org" target="_blank">http://www.freeswitch.org</a><br>
&gt;<br>
&gt;<br>
&gt; _________________________________________________________________________<br>
&gt; Professional FreeSWITCH Consulting Services:<br>
&gt; <a href="mailto:consulting@freeswitch.org" target="_blank">consulting@freeswitch.org</a><br>
&gt; <a href="http://www.freeswitchsolutions.com" target="_blank">http://www.freeswitchsolutions.com</a><br>
&gt;<br>
&gt; FreeSWITCH-powered IP PBX: The CudaTel Communication Server<br>
&gt; <a href="http://www.cudatel.com" target="_blank">http://www.cudatel.com</a><br>
&gt;<br>
&gt; Official FreeSWITCH Sites<br>
&gt; <a href="http://www.freeswitch.org" target="_blank">http://www.freeswitch.org</a><br>
&gt; <a href="http://wiki.freeswitch.org" target="_blank">http://wiki.freeswitch.org</a><br>
&gt; <a href="http://www.cluecon.com" target="_blank">http://www.cluecon.com</a><br>
&gt;<br>
&gt; FreeSWITCH-users mailing list<br>
&gt; <a href="mailto:FreeSWITCH-users@lists.freeswitch.org" target="_blank">FreeSWITCH-users@lists.freeswitch.org</a><br>
&gt; <a href="http://lists.freeswitch.org/mailman/listinfo/freeswitch-users" target="_blank">http://lists.freeswitch.org/mailman/listinfo/freeswitch-users</a><br>
&gt; UNSUBSCRIBE:<a href="http://lists.freeswitch.org/mailman/options/freeswitch-users" target="_blank">http://lists.freeswitch.org/mailman/options/freeswitch-users</a><br>
&gt; <a href="http://www.freeswitch.org" target="_blank">http://www.freeswitch.org</a><br>
&gt;<br>
<br>
<br>
<br>
</div></div><span><font color="#888888">--<br>
Kristian Kielhofner<br>
</font></span></blockquote></div><br><br clear="all"><div><br></div></div></div><span class="HOEnZb"><font color="#888888">-- <br>Kristian Kielhofner
</font></span></div>
</blockquote></div><br><br clear="all"><div><br></div>-- <br>Kristian Kielhofner
</div>