[asterisk-users] Asterisk 16.14.0 pjsip transport-tls cert parsing error

Ruisheng Peng rpeng at ifa.hawaii.edu
Fri Jan 29 20:37:05 CST 2021


beating around bushes, and finally seem to stomp on something that worked!

Simply move the cert file locations from /home/asterisk/certs to
/etc/asterisk/keys

[root at voip1 asterisk]# ls -l keys

total 36

-rw-r-----. 1 asterisk asterisk 1212 Jan 29 14:18 asterisk.crt

-rw-r-----. 1 asterisk asterisk  578 Jan 29 14:18 asterisk.csr

-rw-r-----. 1 asterisk asterisk  891 Jan 29 14:18 asterisk.key

-rw-r-----. 1 asterisk asterisk 2103 Jan 29 14:18 asterisk.pem

-rw-r-----. 1 asterisk asterisk 1749 Jan 29 14:18 ca.crt

-rw-r-----. 1 asterisk asterisk 3311 Jan 29 14:18 ca.key

-rw-r-----. 1 asterisk asterisk 1923 Jan 29 14:18 cert.pem

-rw-r-----. 1 asterisk asterisk 3570 Jan 29 14:18 fullchain.pem

-rw-r-----. 1 asterisk asterisk 1704 Jan 29 14:18 privkey.pem

and tls was established.  With self-sign cert, I'd need to add ca_list_file
in the  transport-tls section in /etc/pjsip.conf for it to fly.

[transport-tls]

type = transport

protocol = tls

bind = 0.0.0.0:5061

; ca_list_file = /etc/asterisk/keys/ca.crt

; cert_file = /etc/asterisk/keys/asterisk.crt

; priv_key_file = /etc/asterisk/keys/asterisk.key

cert_file = /etc/asterisk/keys/fullchain.pem

priv_key_file = /etc/asterisk/keys/privkey.pem

method = tlsv1_2

allow_reload = true

Not sure what was the nature of the problem.  Maybe Selinux?  There was no
complaint from that department though.

  Thanks for the help and suggestions,

--Ruisheng


On Fri, Jan 29, 2021 at 11:33 AM Ruisheng Peng <rpeng at ifa.hawaii.edu> wrote:

> Thanks for the detailed explanation Michael.
>
> I stop the current asterisk process (started by systemd), and restart it
> as asterisk:
>
> [asterisk at voip1 ~]$ strace -f -o /home/asterisk/strace.log asterisk -fmq
> -vvv -C /etc/asterisk/asterisk.conf
>
>
> from the log there was no attempt to even open the cert file.  I edited
> /etc/asterisk/pjsip.conf to add a "method = tlsv1" line to the
> transport-tls section. Rerun the strace command, and here the part re cert
> files:
>
> 8189  stat("/home/asterisk/certs/asterisk.crt", {st_mode=S_IFREG|0640,
> st_size=1
>
> 212, ...}) = 0
>
> 8189  geteuid()                         = 1002
>
> 8189  getegid()                         = 1002
>
> 8189  getuid()                          = 1002
>
> 8189  getgid()                          = 1002
>
> 8189  access("/home/asterisk/certs/asterisk.crt", R_OK) = 0
>
> 8189  stat("/home/asterisk/certs/asterisk.key", {st_mode=S_IFREG|0640,
> st_size=8
>
> 91, ...}) = 0
>
> 8189  geteuid()                         = 1002
>
> 8189  getegid()                         = 1002
>
> 8189  getuid()                          = 1002
>
> 8189  getgid()                          = 1002
>
> 8189  access("/home/asterisk/certs/asterisk.key", R_OK) = 0
>
> 8189  socket(AF_INET, SOCK_STREAM, IPPROTO_IP) = 16
>
> 8189  setsockopt(16, SOL_SOCKET, 0xffff /* SO_??? */, [1], 4) = -1
> ENOPROTOOPT (
>
> Protocol not available)
>
> 8189  setsockopt(16, SOL_SOCKET, SO_REUSEADDR, [1], 4) = 0
>
> 8189  setsockopt(16, SOL_TCP, TCP_NODELAY, [1], 4) = 0
>
> The tls transport is not established in the end.  Only the two hard phones
> using udp transport and a softphone using tcp transport are registered.
>
>
> Thanks,
>
> --Ruisheng
>
>
> On Thu, Jan 28, 2021 at 7:42 PM Michael Maier <m1278468 at mailbox.org>
> wrote:
>
>>
>> On 27.01.21 at 22:57 Ruisheng Peng wrote:
>> > Thanks Michael for the suggestion!  I've installed strace and assigned
>> one
>> > of the endpoints (SOFTPHONE_B) to use transport-tls. Then run strace (as
>> > user asterisk):
>> >
>> > [asterisk at voip1 ~]$ strace asterisk -rx "module reload res_pjsip.so"
>>
>> You should use strace like this as root and from the very beginning of
>> the start
>> of asterisk:
>>
>> strace -f -o /tmp/strace.log asterisk -vvv -mqf -C
>> /etc/asterisk/asterisk.conf
>>
>> -f means, to follow even forked processes, ... (see man page)
>> -o writes all the output to a file. You can search afterwards pretty
>> easily for
>> the file (or the open call).
>>
>> You shouldn't do this in production but in the test environment!
>>
>> You have to run it as long as the error has happened.
>>
>>
>> Thanks
>> Michael
>>
>> --
>> _____________________________________________________________________
>> -- Bandwidth and Colocation Provided by http://www.api-digital.com --
>>
>> Check out the new Asterisk community forum at:
>> https://community.asterisk.org/
>>
>> New to Asterisk? Start here:
>>       https://wiki.asterisk.org/wiki/display/AST/Getting+Started
>>
>> asterisk-users mailing list
>> To UNSUBSCRIBE or update options visit:
>>    http://lists.digium.com/mailman/listinfo/asterisk-users
>>
>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-users/attachments/20210129/5ec3de85/attachment.html>


More information about the asterisk-users mailing list