Thanks to everyone who replied to my emails.
The problem was that I had not read the instructions correctly and assumed I knew what needed to be done. Thanks particularly to Josip for his detailed explanation of the required configuration. I have now correctly configured the certificates and have all of the TLS connections working correctly Console -> Director Director -> Clients Clients -> Storage Director -> Storage Regards, Richard On Sat, 07 Jun 2025 00:29:56 +0200 Josip Deanovic <djosip+n...@linuxpages.net> wrote: > On Friday, June 6, 2025 5:27:05 PM CEST Richard Laysell wrote: > > On Fri, 06 Jun 2025 02:14:57 +0200 > > Josip Deanovic via Bacula-users <bacula-users@lists.sourceforge.net> > > wrote: > > > What is your goal? > > > Do you want to encrypt only the authentication or would you like > > > to encrypt the complete communication between Bacula components? > > > > The complete communication > > Ok. In that case you have to remove the "TLS authentication" option > but I can see that you are now aware of this. > > > > That means that you are using the certificate with wrong purpose. > > > For example, you have created server certificate and you are > > > trying to use it for the purpose where client certificate is > > > expected or vice versa. > > > This is the problem. I AM creating a client certificate for the > > client and a server certificate for the server, but Bacula refuses > > to accept the client certificate. > > Are you using the correct CA certificate in the file specified by the > "TLS CA Certificate File" option? > > In my case, I am using Root CA and the Intermediate Backup CA. > It is not necessary to have dedicated intermediate CA but if you do, > both CA certificates should be added to the CA Certificate File. > > > I can see it is a client certificate by running the following > > command and getting the following output. > > I just looked into your original message where you have pasted part > of the bacula-dir and bacula-fd configurations. > > In the bacula-dir configuration for the Client resource, you have > used the line "TLS Certificate = > /opt/bacula/ssl/bacdir.example.com.crt". > > This one should have purpose of Client certificate (this is a client > certificate). > > Then, in the bacula-fd configuration for the Director resource, you > have used the line "TLS Certificate = > /etc/ssl/client1.example.com.crt". > > This one should have purpose of Server certificate (this is a server > certificate). > > Can you confirm that you correctly used those certificates? > I am asking because the name of the file looks like it might be a > client certificate. > > It is easy to get confused. I am using this naming scheme to avoid > confusion: > > # Bacula director > dir-director-server_bkpsrv.bkp.yourdomain.internal.crt > dir-director-server_bkpsrv.bkp.yourdomain.internal.csr > dir-director-server_bkpsrv.bkp.yourdomain.internal_dh.key > dir-director-server_bkpsrv.bkp.yourdomain.internal.key > > dir-client-client_bkpsrv.bkp.yourdomain.internal.crt > dir-client-client_bkpsrv.bkp.yourdomain.internal.csr > dir-client-client_bkpsrv.bkp.yourdomain.internal.key > > dir-storage-client_bkpsrv.bkp.yourdomain.internal.crt > dir-storage-client_bkpsrv.bkp.yourdomain.internal.csr > dir-storage-client_bkpsrv.bkp.yourdomain.internal.key > > > # Bacula storage daemon > sd-director-server_bkpsrv.bkp.yourdomain.internal.crt > sd-director-server_bkpsrv.bkp.yourdomain.internal.csr > sd-director-server_bkpsrv.bkp.yourdomain.internal_dh.key > sd-director-server_bkpsrv.bkp.yourdomain.internal.key > > sd-storage-server_bkpsrv.bkp.yourdomain.internal.crt > sd-storage-server_bkpsrv.bkp.yourdomain.internal.csr > sd-storage-server_bkpsrv.bkp.yourdomain.internal_dh.key > sd-storage-server_bkpsrv.bkp.yourdomain.internal > > > # Bacula file daemon for backup server named bkpsrv > fd-director-server_bkpsrv.bkp.yourdomain.internal.crt > fd-director-server_bkpsrv.bkp.yourdomain.internal.csr > fd-director-server_bkpsrv.bkp.yourdomain.internal_dh.key > fd-director-server_bkpsrv.bkp.yourdomain.internal.key > > fd-filedaemon-client_bkpsrv.bkp.yourdomain.internal.crt > fd-filedaemon-client_bkpsrv.bkp.yourdomain.internal.csr > fd-filedaemon-client_bkpsrv.bkp.yourdomain.internal.key > > > # Bacula file daemon for some other server named othersrv > fd-director-server_othersrv.bkp.yourdomain.internal.crt > fd-director-server_othersrv.bkp.yourdomain.internal.csr > fd-director-server_othersrv.bkp.yourdomain.internal_dh.key > fd-director-server_othersrv.bkp.yourdomain.internal.key > > fd-filedaemon-client_othersrv.bkp.yourdomain.internal.crt > fd-filedaemon-client_othersrv.bkp.yourdomain.internal.csr > fd-filedaemon-client_othersrv.bkp.yourdomain.internal.key > > > # Bacula console > bconsole-director-client_bkpsrv.bkp.yourdomain.internal.crt > bconsole-director-client_bkpsrv.bkp.yourdomain.internal.csr > bconsole-director-client_bkpsrv.bkp.yourdomain.internal.key > > > > $ openssl x509 -in client1.example.com.crt -purpose -noout > > Certificate purposes: > > SSL client : Yes > > SSL client CA : No > > SSL server : No > > SSL server CA : No > > Netscape SSL server : No > > Netscape SSL server CA : No > > S/MIME signing : No > > S/MIME signing CA : No > > S/MIME encryption : No > > S/MIME encryption CA : No > > CRL signing : No > > CRL signing CA : No > > Any Purpose : Yes > > Any Purpose CA : Yes > > OCSP helper : Yes > > OCSP helper CA : No > > Time Stamp signing : No > > Time Stamp signing CA : No > > Ah, that's the problem. > If you look into my PDF file I have attached in my previous message, > you will see that in the Bacula file daemon configuration, the > Director resource should use server certificate while the Filedaemon > resource should use client certificate. > > In the Bacula director configuration, the Client resource should use > server certificate. > > Please, look at the PDF document from my last post. > It should clarify things. > > > Still, Bacula does not accept this certificate and says: > > ERR=26:unsuitable certificate purpose > > It would seem that Bacula was right. :-) > > > So there is something else wrong with this certificate - but I don't > > understand what. Do I need to add other purposes (S/MIME signing > > etc) or to remove other purposes? There are so many options and I > > have > > No, but I don't think it would create an issue. > > > tried working through them and in doing so have generated about 30 > > different certificates but I have not managed to find one that will > > work. It would be good if this was documented somewhere - a clear > > description of the purposes which are required or forbidden. > > I know it's frustrating but the failure is not an option. :-) > > You are close. You have the correct configuration and you can check > the configuration for other daemons and resources in the PDF document > I have attached in my previous post. > The only problem seems to be the wrong type of certificate you are > using. When I say wrong type, I mean server vs client purpose of the > certificate. > > > > If you get stuck and will not be able make it work, could find the > > > manual procedures I used in the past (using openssl). > > > Yes, please let me know how you were creating the certificates using > > openssl. I have tried creating a CSR using openssl and then signing > > that using easyrsa or ssl-admin but had the same problems. > > Now that we have detected the source of the problem, do you still need > this openssl procedure? > I am asking because it would take some for me to compile the list of > commands and I would like to avoid it but if you need it, I'll do it. > > > If you have an existing client certificate which works, please could > > you run the following command to see which purposes it has and does > > not have. > > $ openssl x509 -in <path to cert> -purpose -noout > > Sure. > > Here is the output for the certificate used in the bacula-dir > configuration for the Client resource: > Certificate purposes: > SSL client : Yes > SSL client CA : No > SSL server : No > SSL server CA : No > Netscape SSL server : No > Netscape SSL server CA : No > S/MIME signing : No > S/MIME signing CA : No > S/MIME encryption : No > S/MIME encryption CA : No > CRL signing : No > CRL signing CA : No > Any Purpose : Yes > Any Purpose CA : Yes > OCSP helper : Yes > OCSP helper CA : No > Time Stamp signing : No > Time Stamp signing CA : No > > This is the output for the certificate used in the bacula-fd > configuration for the Director resource: > Certificate purposes: > SSL client : No > SSL client CA : No > SSL server : Yes > SSL server CA : No > Netscape SSL server : Yes > Netscape SSL server CA : No > S/MIME signing : No > S/MIME signing CA : No > S/MIME encryption : No > S/MIME encryption CA : No > CRL signing : No > CRL signing CA : No > Any Purpose : Yes > Any Purpose CA : Yes > OCSP helper : Yes > OCSP helper CA : No > Time Stamp signing : No > Time Stamp signing CA : No > > > I hope this helps. > > > Regards! > _______________________________________________ Bacula-users mailing list Bacula-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/bacula-users