Cara Membuat Sertifikat dan Kunci SSL yang Ditandatangani Sendiri untuk Apache di RHEL/CentOS 7.0


SSL (Secure Sockets Layer) adalah protokol kriptografi yang memungkinkan aliran data aman antara server dan kliennya menggunakan kunci simetris/asimetris dengan menggunakan sertifikat digital yang ditandatangani oleh Otoritas Sertifikat (CA).

Persyaratan

  1. Instalasi LAMP Dasar di RHEL/CentOS 7.0

Tutorial ini memberikan pendekatan tentang cara menyiapkan protokol kriptografi komunikasi Secure Sockets Layer (SSL) di Apache Web Server yang diinstal di Red Hat Enterprise Linux/CentOS 7.0<, dan buat Sertifikat dan Kunci yang ditandatangani sendiri dengan bantuan skrip bash yang sangat menyederhanakan keseluruhan proses.

Langkah 1: Instal dan Konfigurasikan Apache SSL

1. Untuk mengaktifkan SSL di Apache HTTP Server gunakan perintah berikut untuk menginstal Modul SSL dan tool-kit OpenSSL yang diperlukan untuk dukungan SSL/TLS.

yum install mod_ssl openssl

2. Setelah modul SSL diinstal, mulai ulang daemon HTTPD dan tambahkan aturan Firewall baru untuk memastikan bahwa port SSL – 443 – terbuka untuk koneksi luar pada mesin Anda dalam kondisi mendengarkan.

systemctl restart httpd
firewall-cmd --add-service=https   ## On-fly rule

firewall-cmd --permanent  --add-service=https   ## Permanent rule – needs firewalld restart

3. Untuk menguji koneksi SSL, buka browser jarak jauh dan navigasikan ke alamat IP server Anda menggunakan protokol HTTPS di https://server_IP.

Langkah 2: Buat Sertifikat dan Kunci SSL

4. Komunikasi SSL sebelumnya antara server dan klien dilakukan menggunakan Sertifikat dan Kunci default yang dibuat secara otomatis saat instalasi. Untuk menghasilkan kunci pribadi baru dan pasangan sertifikat yang ditandatangani sendiri, buat skrip bash berikut pada jalur sistem yang dapat dieksekusi (` PATH).

Untuk tutorial ini jalur /usr/local/bin/ dipilih, pastikan skrip memiliki kumpulan bit yang dapat dieksekusi dan, kemudian, gunakan itu sebagai perintah untuk membuat pasangan SSL baru di /etc/ httpd/ssl/ sebagai lokasi default Sertifikat dan Kunci.

nano /usr/local/bin/apache_ssl

Gunakan konten file berikut.

#!/bin/bash
mkdir /etc/httpd/ssl
cd /etc/httpd/ssl

echo -e "Enter your virtual host FQDN: \nThis will generate the default name for Apache SSL Certificate and Key!"
read cert

openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:2048 -out $cert.key
chmod 600 $cert.key
openssl req -new -key $cert.key -out $cert.csr
openssl x509 -req -days 365 -in $cert.csr -signkey $cert.key -out $cert.crt

echo -e " The Certificate and Key for $cert has been generated!\nPlease link it to Apache SSL available website!"
ls -all /etc/httpd/ssl
exit 0

5. Sekarang buat skrip ini dapat dieksekusi dan luncurkan untuk menghasilkan sepasang Sertifikat dan Kunci baru untuk Host Virtual Apache SSL Anda.

Isi dengan informasi Anda dan perhatikan nilai Nama Umum agar sesuai dengan FQDN server Anda atau dalam kasus Hosting Virtual agar sesuai dengan alamat Web yang akan Anda akses saat terhubung ke situs web aman.

chmod +x /usr/local/bin/apache_ssl
apache_ssl

6. Setelah Sertifikat dan Kunci dibuat, skrip akan menampilkan daftar panjang semua pasangan SSL Apache Anda yang disimpan di lokasi /etc/httpd/ssl/.

7. Pendekatan lain dalam menghasilkan Sertifikat dan Kunci SSL adalah dengan menginstal paket crypto-utils di sistem Anda dan menghasilkan pasangan menggunakan perintah genkey, yang dapat menimbulkan beberapa masalah terutama ketika digunakan pada layar terminal Putty.

Jadi, saya sarankan untuk menggunakan cara ini hanya ketika Anda terhubung langsung dengan layar monitor.

yum install crypto-utils
genkey your_FQDN

8. Untuk menambahkan Sertifikat dan Kunci baru ke situs web SSL Anda, buka file konfigurasi situs web Anda dan ganti pernyataan SSLCertificateFile dan SSLCertificateKeyFile dengan pasangan yang baru lokasi dan nama yang sesuai.

9. Jika Sertifikat tidak diterbitkan oleh CA – Otoritas Sertifikasi yang tepercaya atau nama host dari sertifikat tidak cocok dengan nama host yang membuat sambungan, kesalahan akan muncul di browser Anda dan Anda harus menerimanya secara manual sertifikat.

Itu dia! Sekarang Anda dapat menggunakan apache_sslsebagai baris perintah di RHEL/CentOS 7.0 untuk menghasilkan sebanyak mungkin pasangan Sertifikat dan Kunci yang ditandatangani sendiri yang Anda perlukan, dan semuanya akan disimpan di /etc/httpd/ jalur ssl/ dengan file Kunci dilindungi dengan izin 700.