1# Syslogd gets no TLS server certificate. 2# The client cannot connect to 127.0.0.1 TLS socket. 3# Check that syslog log contains an error message. 4 5use strict; 6use warnings; 7use Socket; 8 9my $cert = "/etc/ssl/127.0.0.1.crt"; 10my @sudo = $ENV{SUDO} ? $ENV{SUDO} : (); 11my @cmd = (@sudo, "rm", "-f", "--", $cert); 12system(@cmd) and die "Command '@cmd' failed: $?"; 13END { 14 local $?; 15 my @cmd = (@sudo, "cp", "--", "127.0.0.1.crt", $cert); 16 system(@cmd) and warn "Command '@cmd' failed: $?"; 17} 18 19our %args = ( 20 client => { 21 func => sub { 22 my $self = shift; 23 IO::Socket::IP->new( 24 Domain => AF_INET, 25 Proto => "tcp", 26 PeerAddr => "127.0.0.1", 27 PeerPort => 6514, 28 ) and die "tcp socket connect to 127.0.0.1:6514 succeeded"; 29 }, 30 nocheck => 1, 31 }, 32 syslogd => { 33 options => ["-S", "127.0.0.1:6514"], 34 ktrace => { 35 qr{NAMI "/etc/ssl/private/127.0.0.1:6514.key"} => 1, 36 qr{NAMI "/etc/ssl/127.0.0.1:6514.crt"} => 0, 37 qr{NAMI "/etc/ssl/private/127.0.0.1.key"} => 1, 38 qr{NAMI "/etc/ssl/127.0.0.1.crt"} => 1, 39 }, 40 loggrep => { 41 qr{Keyfile /etc/ssl/private/127.0.0.1.key} => 1, 42 qr{Certfile } => 0, 43 qr{load server TLS key: failed to open key file} => 1, 44 qr{load server TLS cert: failed to open certificate file} => 1, 45 qr{tls_configure server: private/public key mismatch} => 1, 46 }, 47 }, 48 server => { 49 noserver => 1, 50 }, 51 file => { nocheck => 1 }, 52 pipe => { nocheck => 1 }, 53 tty => { nocheck => 1 }, 54); 55 561; 57