OpenSSL: set SSL untuk https di Ubuntu
Pengantar
TLS, atau transport layer security, dan pendahulunya SSL, secure socket layer, adalah protokol keamanan yang dibuat untuk menempatkan lalu lintas normal dalam bungkus terenkripsi yang dilindungi.
Protokol ini memungkinkan lalu lintas dikirim dengan aman di antara pihak-pihak yang berjauhan tanpa kemungkinan lalu lintas dicegat dan dibaca oleh seseorang di tengahnya. Mereka juga berperan dalam memvalidasi identitas domain dan server di seluruh internet dengan membuat server sebagai terpercaya dan asli oleh otoritas sertifikat.
Dalam panduan ini, kami akan membahas cara membuat sertifikat SSL yang ditandatangani sendiri untuk Apache di server Ubuntu terbaru, yang memungkinkan Anda mengenkripsi lalu lintas ke server Anda. Meskipun ini tidak memberikan manfaat validasi pihak ketiga terhadap identitas server Anda, namun ini memenuhi persyaratan orang-orang yang hanya ingin mentransfer informasi dengan aman.
Catatan: Anda mungkin ingin mempertimbangkan untuk menggunakan Let's Encrypt daripada self-signed certificatei. Let's Encrypt adalah otoritas sertifikat baru yang mengeluarkan sertifikat SSL / TLS gratis yang dipercaya di kebanyakan browser web. Simak tutorialnya untuk memulai: Cara Mengamankan Apache dengan Let's Encrypt di Ubuntu 14.04
Kebutuhan
Install apache
sudo apt-get update sudo apt-get install apache2
Step 1 - Aktifkan SSL Module
Aktifkan SSL & restart apache
sudo a2enmod ssl sudo service apache2 restart
Step 2 - buat self-sign SSL certificate
Buat folder SSL & buat self-signed certificate
sudo mkdir /etc/apache2/ssl sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/apache2/ssl/apache.key -out /etc/apache2/ssl/apache.crt
Artinya
- openssl - perintah untuk operasi SSL
- req - X.509 certificate signing request (CSR)
- X.509 - self-signed
- nodes - key file tidak perlu di amankan dengan passphrase
- days 365 - valid untuk 1 tahun
- newkey rsa:2048: buat CSR dan private key bersamaan. RSA key panjangnya 2048 bit.
- keyout: nama outfile dari private key yang dibuat.
- out: nama certificate file yang dibuat.
Setelah tekan "ENTER", ada beberapa pertanyaan / jawaban yang perlu dilakukan dalam proses adalah,
Country Name (2 letter code) [AU]:US State or Province Name (full name) [Some-State]:New York Locality Name (eg, city) []:New York City Organization Name (eg, company) [Internet Widgits Pty Ltd]:Your Company Organizational Unit Name (eg, section) []:Department of Kittens Common Name (e.g. server FQDN or YOUR name) []:your_domain.com Email Address []:your_email@domain.com
Sertificate & key akan di letakan di directory /etc/apache2/ssl
Step 3 — Konfigurasi Apache untuk menggunakan SSL
Kita menggunakan default-ssl.conf, edit,
sudo nano /etc/apache2/sites-available/default-ssl.conf
Tampilan file adalah sebagai berikut,
<IfModule mod_ssl.c> <VirtualHost _default_:443> ServerAdmin webmaster@localhost DocumentRoot /var/www/html ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined SSLEngine on SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key <FilesMatch "\.(cgi|shtml|phtml|php)$"> SSLOptions +StdEnvVars </FilesMatch> <Directory /usr/lib/cgi-bin> SSLOptions +StdEnvVars </Directory> BrowserMatch "MSIE [2-6]" \ nokeepalive ssl-unclean-shutdown \ downgrade-1.0 force-response-1.0 BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown </VirtualHost> </IfModule>
Kita perlu mengedit
- ServerAdmin
- ServerName
- ServerAlias
- DocumentRoot
- Ubah lokasi
- Ubah SSL certificate & key
Tampilan sesudah di ubah,
<IfModule mod_ssl.c> <VirtualHost _default_:443> ServerAdmin admin@example.com ServerName your_domain.com:443 ServerAlias www.your_domain.com:443 DocumentRoot /var/www/html ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined SSLEngine on SSLCertificateFile /etc/apache2/ssl/apache.crt SSLCertificateKeyFile /etc/apache2/ssl/apache.key <FilesMatch "\.(cgi|shtml|phtml|php)$"> SSLOptions +StdEnvVars </FilesMatch> <Directory /usr/lib/cgi-bin> SSLOptions +StdEnvVars </Directory> BrowserMatch "MSIE [2-6]" \ nokeepalive ssl-unclean-shutdown \ downgrade-1.0 force-response-1.0 BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown </VirtualHost> </IfModule>
Step 4 — Aktifkan SSL Virtual Host
Enable SSL virtual host & reload apache, ketik
sudo a2ensite default-ssl.conf sudo service apache2 restart
Step 5 — Test Setup
Browse ke
https://ip-address-server
Anda akan memperoleh warning karena menggunakan self-signed certificate. Ini tidak apa2