We have three internal Apache web servers that we use for Groupwise webaccess 7.0.3. Each server will be accessed acrossed our intranet via round robin DNS at https://webaccess/gw/webacc for email. When users currently access this URL they are getting Internet Explorer Security Alerts, stating:
The name on the security cerrtificate is invalid or does not match the name of the site. Do you want to proceed?
In order to fix this issue, I need to install SSL certificates on each individual server and configure Apache to use the new certificates. I also needed to configure my web browser to trust the issuing Certificate Authority.
I chose to use our existing Novell Organizational CA to issue the certificates rather than purchase one from Verisign or other Trusted Root Certification Authority since these sites would only be accessed across the corporate intranet.
We had one additional requirement – each server still needed to be accessed via https at https://servername for Novell Remote Manager and iManager. This meant the three servers had to have valid SSL certificates for multiple host names, i.e. both their actual name and the webaccess name.
The Environment
- Three Netware 6.5.5 server running Apache 2.0.54 for Netware. Servers are named web1, web2, and web3
- ConsoleOne 1.3.6f
- Novell Certificate Server Snapin version 2.21 Build 28
- Internet Explorer 6 web browser
Creating the server SSL certificates
1. Launch ConsoleOne
2. Browse to the OU that holds the servers you wish to create certificates for.
3. Right click on the server OU
4. Select New – Object – NDSPKI:Key Material – OK
5. Select the server name you want to create the certificate for, and give the certificate a meaningful name. I named mine intwebaccessweb1
6. Under Creation Method, select Custom – Next
7. Select Organizational Certificate Authority will sign this certificate – Next
8. Accept the defaults of 2048 bit key size, SSL or TLS type, and allow the private key to be exported – Next
9. This is an important part – The subject name must match how you will be accessing your server over https for iManager and NRM. Click the Edit button, then click the double arrow button to the right of the subject name. This will move the .CN= portion of the name to the left side of the box.
Replace everything from .CN= to .OU= (or .O=) with the name you will be accessing your server with.
Since I will be accessing my server at https://web1, I used .CN=web1.O=myOrg.
If you will be accessing your server for iManager, NRM, or other non-shared services at https://www.yourdomain.com you would enter .CN=www.yourdomain.com.O=yourOrg
10. Press OK to accept the subject name.
11. Change the validity period to what ever duration you would like your certificate to be valid for. I selected maximum, which will make it good until the certificate for my Organizational CA expires.
12. Press the Add Name button – here is where we specify our secondary name we want the SSL certificate to be valid for.
13. Highlight the existing Directory name and press Delete.
14. Click Create – DNS Name
15. Specify the host name you will be sharing amongst your web servers. This is sometimes referred to as a DNS Subject Alternate Name
I specified webaccess – OK – OK – Next. Again, if you will be accessing your shared web server at https://www.yourdomain.com, specify www.yourdomain.com as the DNS name.
16. Select to associate this server certificate with Your organization’s certificate – Next – Finish
I then repeated these steps for my other two web servers, replacing in steps 5 and 9 ‘web1′ with ‘web2′ and ‘web3′, which are the real host names of my other web servers. Step 15 remains the same, since this is the common name I want all three web servers to respond to.
Configuring Apache to use the new SSL certificates
1. On the first web server edit the sys:\Apache2\conf\httpd.conf file.
2. Replace the line reading
SecureListen 443 “SSL CertificateDNS”
with
SecureListen 443 “intwebaccessweb1″
where intwebaccessweb1 is the name of the web server you created in the section above. Note that the certificate object will be displayed in ConsoleOne as ‘intwebaccessweb1 – web1′. Do not include the hyphen and server name, i.e. ‘ – web1‘ in the SecureListen statement.
3. Save the httpd.conf file
4. On the web server console, run ap2webdn to unload Apache
5. On the web server console run tc4stop to stop Tomcat
6. On the web server console, run tckeygen to update the keystore data. Switch to the logger screen to verify the process completes before proceeding to the next step.
7. On the web server console, run tomcat4 to load Tomcat. Switch to the logger screen to verify the process completes before proceeding to the next step.
8. On the web server console, run ap2webup to load Apache.
9. Browse to the shared name of your web server, https://webaccess/gw/webacc in my case. Note that you will still receive the Security Alert pop-up until you install the Organizational CA certificate into your Trusted Root Certification Authorities store, which I’ll document tomorrow.
10. On the Security Alert pop-up, you should see the message stating The security certificate has a valid name matching the name of the page you are trying to view.
This means your SSL certificate is valid for the host name shared by the web servers.
11. Browse to https://web1, which is the host name of one of your web servers defined in step 9 of Creating the server SSL certificates.
Again, you’ll still receive the Security Alert until you install the Organizational CA certificate into your Trusted Root Certification Authorities store, but you should see The security certificate has a valid name matching the name of the page you are trying to view. This means your SSL certificate is valid for the host name for this specific web server.
Here are the instructions for installing the Organizational CA certificate into your browser’s Trusted Root Certification Authorities store, which is the final thing we’ll need to do to rid ourselves of the Internet Explorer’s Security Alerts.