Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

...

Symptoms

An SSL certificate is necessary for more than just distributing the public key: if it is signed by a trusted third-party, it verifies the identity of the server so clients know they aren’t sending their information (encrypted or not) to the wrong person. So what is a self-signed certificate? It is a certificate that is signed by itself rather than a trusted third party. This is not a good idea for most  business use cases. You will almost never want to use a self-signed certificate on a public Apache server that requires anonymous visitors to connect to your site because they could easily become a victim of a man-in-the-middle attack. There are a limited number of situations in which a self-signed certificate may prove adequate:

  • Self-signed certificates can be used on an Apache development server. There is no need to spend extra cash buying a trusted certificate when you are just developing or testing an application.
  • Self-signed certificates can be used on an intranet. When clients only have to go through a local intranet to get to the server, there is virtually no chance of a man-in-the-middle attack.
  • Self-signed certificates can be used on personal sites with few visitors. If you have a small personal site that transfers non-critical information, there is very little incentive for someone to attack the connection.

In other words, when deploying your SoftNAS server into an enterprise use case, it may be required (or at least strongly recommended) that you switch the default self-signed certifications for your own enterprise certifications.


Purpose

This article provides the steps required in order to provide your own certifications to your SoftNAS instance.


Resolution

If you want to send or receive messages signed by root authorities and these authorities are not installed on the server, you must add a trusted root certificate manually.

Use the following steps to add or remove trusted root certificates to/from a server:

First, append your trusted certificate, and set the desired path.

Panel
borderColorblack
bgColor#f0f0f0
borderStylesolid
cp new.crt /etc/pki/tls/certs

cp new.key /etc/pki/tls/private/ca.key

cp new.csr /etc/pki/tls/private/ca.csr


Once the new certificates and keys are appended, restart the service. 

Panel
borderColorblack
bgColor#f0f0f0
borderStylesolid
service httpd restart


The next thing to do is to set up the virtual hosts to display the new certificate.

Open up the SSL config file:

Panel
borderColorblack
bgColor#f0f0f0
borderStylesolid
vi +/SSLCertificateFile /etc/httpd/conf.d/ssl.conf


Change the paths to match where the Key file is stored. If you've used the method above it will be:

Panel
borderColorblack
bgColor#f0f0f0
borderStylesolid
SSLCertificateFile /etc/pki/tls/certs/ca.crt


Then set the correct path for the Certificate Key File a few lines below. If you've followed the instructions above it is:

Panel
borderColorblack
bgColor#f0f0f0
borderStylesolid
SSLCertificateKeyFile /etc/pki/tls/private/ca.key


Quit and save the file and then restart Apache.

Panel
borderColorblack
bgColor#f0f0f0
borderStylesolid
service httpd restart



Notes/Additional Info:

  • It is HIGHLY recommended to add the certificates before configuring replication to avoid any SnapReplicate™ interruption, as changing the keys will deactivate replication.
  • In case there is a need to change the keys after configuring SnapReplicate™:

Execute the following command on both the target and source node and erase the

...

ssh finger prints:

...








Panel
borderColorblack
bgColor#f0f0f0
borderStylesolid
sed -i '/OTHER-NODE-IP-ADDRESS/d' .ssh/known_hosts







Next, to

...

add a new set of fingerprints, type the following command:

...




Panel
borderColorblack
bgColor#f0f0f0
borderStylesolid
ssh-keyscan

...

  OTHER-NODE-IP-ADDRESS   >> .ssh/known_hosts





Log into the Web UI (StorageCenter) on both instances and try to activate HA again. The problem should be resolved. Contact support if you have further issues.