I'm running Bacula 9.06 (compiled from source with the --with-openssl option) on CentOS 7.5 and running into issues configuring TLS in our test environment. I am following the instructions from these two pages: https://www.labeightyfour.com/2019/06/20/configure-encrypted-connections-in-bacula/ https://www.labeightyfour.com/2019/12/05/certificate-extensions-in-openssl/
My test environment consists of a server running the Director and SD (xbacdirector01-lv) as well as a CentOS 7.5 Linux client and Windows Server 2019 client. First, I generated the keys and certificates on xbacdirector01-lv, put them in /etc/ssl, chown'd them as bacula.bacula and changed the permissions on the keys to 600. Here is how I generated things: Configure the Certificate Authority using OpenSSL openssl genrsa -out bacula_ca.key 2048 openssl req -new -x509 -key bacula_ca.key -out bacula_ca.crt -days 365 -extensions usr_cert Configure Keys and Certificates for the Bacula Server using OpenSSL openssl req -new -newkey rsa:2048 -nodes -keyout bacula_server.key -out bacula_server.csr -days 365 openssl x509 -req -in bacula_server.csr -CA /etc/ssl/bacula_ca.crt -CAkey /etc/ssl/bacula_ca.key -CAcreateserial -out bacula_server.crt -extensions usr_cert -days 365 Then I modified bconsole.conf to include the TLS directives. It now looks like this: Director { Name = xbacdirector01-lv.internal.shutterfly.com-dir DIRport = 9101 address = xbacdirector01-lv.internal.shutterfly.com Password = "password" TLS Enable = yes TLS Require = yes TLS CA Certificate File = /etc/ssl/bacula_ca.crt TLS Certificate = /etc/ssl/bacula_server.crt TLS Key = /etc/ssl/bacula_server.key } Next, I updated bacula-dir.conf to include the TLS directives: Director { # define myself Name = xbacdirector01-lv.internal.shutterfly.com-dir DIRport = 9101 # where we listen for UA connections QueryFile = "/etc/bacula/query.sql" WorkingDirectory = "/var/bacula" PidDirectory = "/var/run" Maximum Concurrent Jobs = 20 Password = "password" # Console password Messages = Daemon TLS Enable = yes TLS Require = yes TLS CA Certificate File = /etc/ssl/bacula_ca.crt TLS Certificate = /etc/ssl/bacula_server.crt TLS Key = /etc/ssl/bacula_server.key # TLS Verify Peer = no TLS Allowed CN = “xbacdirector01-lv.internal.shutterfly.com” } Storage { # definition of myself Name = xbacdirector01-lv.internal.shutterfly.com-sd SDPort = 9103 # Director's port Address = xbacdirector01-lv.internal.shutterfly.com Password = "password" Device = FileChgr1-Dev1 #Make sure this matches the bacula-sd.conf file MediaType = File1 Maximum Concurrent Jobs = 20 Autochanger = yes Allow Compression = yes TLS Enable = yes TLS Require = yes TLS CA Certificate File = /etc/ssl/bacula_ca.crt TLS Certificate = /etc/ssl/bacula_server.crt TLS Key = /etc/ssl/bacula_server.key } Autochanger { Name = File1 # Do not use "localhost" here Address = xbacdirector01-lv.internal.shutterfly.com # N.B. Use a fully qualified name here SDPort = 9103 Password = "password" Device = FileChgr1 Media Type = File1 Maximum Concurrent Jobs = 10 # run up to 10 jobs a the same time Autochanger = File1 # point to ourself TLS Enable = yes TLS Require = yes TLS CA Certificate File = /etc/ssl/bacula_ca.crt TLS Certificate = /etc/ssl/bacula_server.crt TLS Key = /etc/ssl/bacula_server.key } I also added the TLS directives to bacula-sd.conf: Storage { # definition of myself Name = xbacdirector01-lv.internal.shutterfly.com-sd SDPort = 9103 # Director's port WorkingDirectory = "/var/bacula" Pid Directory = "/var/run" Plugin Directory = "/usr/lib64" Maximum Concurrent Jobs = 20 TLS Enable = yes TLS Require = yes TLS CA Certificate File = /etc/ssl/bacula_ca.crt TLS Certificate = /etc/ssl/bacula_server.crt TLS Key = /etc/ssl/bacula_server.key } Director { Name = xbacdirector01-lv.internal.shutterfly.com-dir Password = "password" TLS Enable = yes TLS Require = yes TLS CA Certificate File = /etc/ssl/bacula_ca.crt TLS Certificate = /etc/ssl/bacula_server.crt TLS Key = /etc/ssl/bacula_server.key } After those changes, I bounced Bacula and tried running bconsole. Here is the error I'm receiving: Connecting to Director xbacdirector01-lv.internal.shutterfly.com:9101 bconsole: tls.c:87-0 Error with certificate at depth: 0, issuer = /C=US/ST=Arizona/L=Tempe/O=Shutterfly/OU=ops-syseng/CN=xbacdirector01-lv.internal.shutterfly.com/emailAddress=t...@shutterfly.com, subject = /C=US/ST=Arizona/L=Tempe/O=Shutterfly/OU=ops-syseng/CN=xbacdirector01-lv.internal.shutterfly.com/emailAddress=t...@shutterfly.com, ERR=18:self signed certificate 31-Jul 14:41 bconsole JobId 0: Error: tls.c:87 Error with certificate at depth: 0, issuer = /C=US/ST=Arizona/L=Tempe/O=Shutterfly/OU=ops-syseng/CN=xbacdirector01-lv.internal.shutterfly.com/emailAddress=t...@shutterfly.com, subject = /C=US/ST=Arizona/L=Tempe/O=Shutterfly/OU=ops-syseng/CN=xbacdirector01-lv.internal.shutterfly.com/emailAddress=t...@shutterfly.com, ERR=18:self signed certificate TLS negotiation failed Director authorization problem. Most likely the passwords do not agree. If you are using TLS, there may have been a certificate validation error during the TLS handshake. For help, please see http://www.bacula.org/rel-manual/en/problems/Bacula_Frequently_Asked_Que.html I'm guessing I didn't configure the certs properly but I don't know why. I also tried creating things with the CN not being fully-qualified, i.e.: CN=xbacdirector01-lv. That didn't make a difference. I'm pretty green when it comes to configuring certs so I apologize if I'm making rookie mistakes. Does anyone know what I'm doing wrong? Please let me know if you need more details of my setup and configuration. Thanks! --Shawn
_______________________________________________ Bacula-users mailing list Bacula-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/bacula-users