Get your server issues fixed by our experts for a price starting at just 25 USD/Hour. Click here to register and open a ticket with us now!

Author Topic: How to Create a Self-Signed SSL Certificate on CentOS...  (Read 1379 times)

0 Members and 1 Guest are viewing this topic.

joseletk

  • Guest
How to Create a Self-Signed SSL Certificate on CentOS...
« on: March 24, 2018, 06:28:27 pm »
In this article we’re going to be covering how to create a self-signed SSL certificate and assign it to a domain in Apache. Self-signed SSL certificates add security to a domain for testing purposes, but are not verifiable by a third-party certificate provider.

Step #1: View Loaded Apache Modules, Load SSL if Necessary

First let’s view whether Apache 2 already has the SSL module loaded using information from our article on How to List Which Apache 2 Modules are Enabled on CentOS 6:

Code: [Select]
# apachectl -M | grep ssl
The module is already loaded if the result of the above command is:

ssl_module (shared)

If it is not loaded, then it is possible that mod_ssl is not installed. Install mod_ssl:

# yum -y install mod_ssl

And now we’ll restart Apache:

# service httpd restart

Step #2: Setup the Environment, and Create the Self-signed SSL Certificate

Make a directory to store the certificate and the server key:

# mkdir /etc/httpd/ssl

Generate the SSL via OpenSSL with the following command:

Code: [Select]
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/httpd/ssl/apache.key -out /etc/httpd/ssl/apache.crt
The above command will generate a 2048 -bit private key and corresponding CSR that remains valid for 365 days, and place those files into the new directory. The output of the above command will result in the following, of which you’ll need to answer a few questions:

Code: [Select]
Generating a 2048 bit RSA private key
………………………………………………..+++
……………..+++
writing new private key to ‘/etc/httpd/ssl/apache.key’
—–
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter ‘.’, the field will be left blank.
—–
Country Name (2 letter code) [XX]:US
State or Province Name (full name) []:Michigan
Locality Name (eg, city) [Default City]:Lansing
Organization Name (eg, company) [Default Company Ltd]:Liquid Web
Organizational Unit Name (eg, section) []:KB
Common Name (eg, your name or your server’s hostname) []:kb.thebestfakedomainnameintheworld.com
Email Address []:email@thebestfakedomainnameintheworld.com

Note:  It is very important that the Common Name be set appropriately. Enter your fully qualified domain name (FQDN) here or, if you don’t have an FQDN, then your site’s IP address.

Step #3: Add the Self-signed SSL Certificate to Apache

Now that the private key and associated CSR have been generated, we need to edit the SSL configuration file for Apache:

# vim /etc/httpd/conf.d/ssl.conf

Find the section:

Code: [Select]
VirtualHost _default_:443
And add the following Virtual Host configuration on the next line:

Code: [Select]
ServerName kb.thebestfakedomainnameintheworld.com:443
Be sure to replace kb.thebestfakedomainnameintheworld.com with your fully qualified domain name or server IP address for your Virtual Host. Keep in mind, that the domain should be the same as the Common Name specified in the previous step.

Verify that the following variables are set appropriately in the same file:

Code: [Select]
SSLEngine on
SSLCertificateFile /etc/httpd/ssl/apache.crt
SSLCertificateKeyFile /etc/httpd/ssl/apache.key

Then exit and save the file with the command :wq .

Step #4: Restart Apache

Then restart Apache once more:

service httpd restart

Use https://yourdomain to test your new self-signed SSL certificate!

===========================================================================