6.2 Installing SSL Certificates

These instructions guide you through the process of installing SSL certificates for your MySQL Enterprise Monitor installation. The $INSTALL_ROOT represents the root path of your installation, which defaults to:

Table 6.1 Default Root Path ($INSTALL_ROOT)

Operating SystemDefault Path
Microsoft WindowsC:\Program Files\MySQL\Enterprise\Monitor\
Linux / Solarishome/mysql/enterprise/monitor/
Mac OS X/Applications/mysql/enterprise/monitor/

Generating SSL Key and Certificate

To use SSL, you must generate a certificate and private key. These can be verified and signed through a third-party authority, such as Thawte or Entrust, or generated locally and self-signed. The recommended tool for locally-generated SSL key and certificates is the OpenSSL Toolkit. The OpenSSL libraries are delivered by default with UNIX, Linux and Mac OS X platforms, but must be obtained separately for Microsoft Windows from http://slproweb.com/products/Win32OpenSSL.html. The Windows installation also requires the Visual C++ 2008 Redistributables libraries.

Important

For security reasons, we recommend you install the latest, compatible version of the OpenSSL Toolkit.

If you intend to use a Certificate Authority to verify your organisation's identity and sign your certificate, you must generate a private key, which is used to create a Certificate Signing Request (CSR), and send the CSR file to the Certificate Authority.

To generate the RSA private key, run the following command:

openssl genrsa -out insertName.key 2048

This generates a 2048-bit, RSA private key.

To generate the Certificate Signing Request (CSR), run the following command:

openssl req -new -nodes -key insertName.key -out insertName.csr

This command prompts for input. Complete the fields as required.

Important

The CN field must correspond to the hostname. It is recommended that you use the fully-qualified server name, rather than localhost.

If you intend to use a self-signed certificate, you can generate the key and certificate with a single command:

openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 365

This command generates a 2048-bit RSA key, key.pem, and a certificate, cert.pem, which is valid for 365 days.

MySQL Enterprise Service Manager

To install an SSL certificate for the MySQL Enterprise Service Manager:

Save the certificate and private key, both in PEM format, in the following location:


$INSTALL_ROOT/apache-tomcat/conf/ssl/tomcat.cert.pem
$INSTALL_ROOT/apache-tomcat/conf/ssl/tomcat.key.pem

Next, restart the service manager. For more information about stopping and starting the service manager, see the instructions for Unix/Mac OS X and Microsoft Windows.

If you are using a chained certificate implementation, you must add the following attribute to the Connector element of Tomcat's server.xml:

SSLCertificateChainFile="/opt/mysql/enterprise/monitor/apache-tomcat/conf/ssl/tomcat.int.pem

MySQL Enterprise Monitor Agent

To configure SSL-related options for the Agent, the following values may be placed in $INSTALL_ROOT/etc/bootstrap.properties:

Table 6.2 SSL Configuration Options For The Agent's bootstrap.properties

bootstrap.properties OptionConfiguration ValuesDescription
ssl-verify-hostnamestrue or falseVerify that the hostname of the service manager that the Agent is connected to matches what is in the SSL certificate, Default is false, as we are only using SSL for confidentiality
ssl-verify-host-certstrue or falseDefault false, but to support self-signed certificates, a commercial certificate, or if the CA certificate has been imported into a keystore, then set to true
ssl-ca-keystore-pathString, the pathPath to keystore with CA cert(s), if ssl-verify-host-certs is true
ssl-ca-keystore-passwordString, the passwordPassword for the CA keystore, if ssl-verify-host-certs is true

An example bootstrap.properties SSL certification section:


ssl-verify-hostname=false
ssl-verify-host-certs=true
ssl-ca-keystore-path=/path/to/keystore
ssl-ca-keystore-password=password123

To import a CA certificate in PEM format to a new keystore on the Agent, execute the following:


$INSTALL_ROOT/java/bin/keytool -import -file /path/to/ca/ca.pem -alias CA_ALIAS -keystore $INSTALL_ROOT/etc/cacerts


The tool responds with the certificate details. For example:


Enter keystore password:  (the keystore will require at least a 6 character password)
Re-enter new password:

Owner: CN=serverName.com, O=MySQL AB, ST=Uppsala, C=SE
Issuer: O=MySQL AB, L=Uppsala, ST=Uppsala, C=SE
Serial number: 100002
Valid from: Fri Jan 29 12:56:49 CET 2010 until: Wed Jan 28 12:56:49 CET 2015
Certificate fingerprints:
     MD5:  E5:FB:56:76:78:B1:0C:D7:B0:80:9F:65:06:3E:48:3E
     SHA1: 87:59:80:28:CE:15:EF:7E:F1:75:4B:76:77:5E:64:EA:B7:1D:D1:18
     SHA256: F4:0B:79:52:CF:F3:A1:A4:7F:B2:D7:C1:65:60:F0:80:93:87:D2:68:9A:A1:84:F4:06:6E:8E:CF:C1:F6:1B:52
     Signature algorithm name: MD5withRSA
     Version: 1
Trust this certificate? [no]: (type yes + enter)
Certificate was added to keystore

Now, your bootstrap.properties will need the ssl-ca-* configuration values adjusted accordingly, to use the path to the keystore and password.

LDAP SSL Configuration

SSL configuration for LDAP is configured at the MySQL Enterprise Service Manager Java VM level. That is, it is configured in the keystore of the Java VM bundled with your MySQL Enterprise Monitor installation.

The steps described in this section assume your LDAP server is correctly configured and you have a root CA certificate which was used to generate the LDAP server's certificate.

To enable SSL for LDAP and MySQL Enterprise Service Manager, you must do the following:

  1. Convert the LDAP server's root CA certificate from PEM to DER format, if necessary. If the CA certificate is already in DER format, continue to the next step.

    openssl x509 -in cacert.pem -inform PEM -out ~/cacert.der -outform DER
  2. Import the CA certificate, in DER format, into the MySQL Enterprise Service Manager Java keystore. Run the following command from the bin directory of your MySQL Enterprise Service Manager's Java installation:

    keytool -import -trustcacerts -alias ldapssl -file ~/cacert.der -keystore lib/security/cacerts
  3. Restart MySQL Enterprise Service Manager with the following command:

    mysql/enterprise/monitor/mysqlmonitorctl.sh restart