Skip to content

Commit adbc50e

Browse files
author
jmguzman
committed
Add support for ssl_key_file (as required for client certificate auth)
1 parent caefba7 commit adbc50e

File tree

3 files changed

+11
-0
lines changed

3 files changed

+11
-0
lines changed

lib/GLPI/Agent/Config.pm

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ my $default = {
5555
'scan-profiles' => undef,
5656
'server' => undef,
5757
'ssl-cert-file' => undef,
58+
'ssl-key-file' => undef,
5859
'ssl-fingerprint' => undef,
5960
'ssl-keystore' => undef,
6061
'tag' => undef,

lib/GLPI/Agent/HTTP/Client.pm

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,10 @@ sub new {
4343
die "non-existing client certificate file $ssl_cert_file"
4444
if $ssl_cert_file && ! -f $ssl_cert_file;
4545

46+
my $ssl_key_file = $params{ssl_key_file} || $config->{'ssl-key-file'};
47+
die "non-existing client certificate file $ssl_key_file"
48+
if $ssl_key_file && ! -f $ssl_key_file;
49+
4650
# We should still keep SSL certs cache if running in long running netdiscovery
4751
# or netinventory task with expiration set in a dedicated thread
4852
$_SSL_ca->{_expiration} = getExpirationTime()
@@ -60,6 +64,7 @@ sub new {
6064
ca_cert_dir => $ca_cert_dir,
6165
ca_cert_file => $ca_cert_file,
6266
ssl_cert_file => $ssl_cert_file,
67+
ssl_key_file => $ssl_key_file,
6368
ssl_fingerprint => $params{ssl_fingerprint} || $config->{'ssl-fingerprint'},
6469
ssl_keystore => $params{ssl_keystore} || $config->{'ssl-keystore'},
6570
_vardir => $config->{'vardir'},
@@ -514,6 +519,9 @@ sub _setSSLOptions {
514519
if $self->{ca_cert_dir};
515520
$self->{ua}->ssl_opts(SSL_cert_file => $self->{ssl_cert_file})
516521
if $self->{ssl_cert_file};
522+
$self->{ua}->ssl_opts(SSL_key_file => $self->{ssl_key_file})
523+
if $self->{ssl_key_file};
524+
517525
$self->{ua}->ssl_opts(SSL_fingerprint => $self->{ssl_fingerprint})
518526
if $self->{ssl_fingerprint} && $IO::Socket::SSL::VERSION >= 1.967;
519527
# Use SSL_ca option to support system keychain or keystore to add

lib/GLPI/Agent/HTTP/Protocol/https.pm

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@ sub import {
1616
if $params{ca_cert_dir};
1717
IO::Socket::SSL::set_ctx_defaults(ssl_cert_file => $params{ssl_cert_file})
1818
if $params{ssl_cert_file};
19+
IO::Socket::SSL::set_ctx_defaults(ssl_key_file => $params{ssl_key_file})
20+
if $params{ssl_key_file};
1921
IO::Socket::SSL::set_ctx_defaults(ssl_ca => $params{ssl_ca})
2022
if $params{ssl_ca};
2123
IO::Socket::SSL::set_ctx_defaults(ssl_fingerprint => $params{ssl_fingerprint})

0 commit comments

Comments
 (0)