Let`s Encrypt adalah Otoritas Sertifikat baru yang indah yang menyediakan gratis, Sertifikat SSL otomatis. Ini didukung oleh beberapa perusahaan terbaik di dunia dan mempromosikan ide yang harus dilindungi oleh SSL semua situs web.
Mereka melakukan itu dengan menawarkan sertifikat SSL gratis yang dapat Anda gunakan di situs manapun. Mereka hidup singkat sehingga mereka bertahan 3 bulan, dan untuk pembaharuan setup, anda dapat menggunakan cron dalam upaya memperbaharui secara berkala.
Install Let’s Encrypt client
Pertama, kita akan gunakan SSH ke server:
ssh deploy@IPADDRESS
Berikutnya, kita ambil salinan Let`s Encrypt client dari Github:
cd ~ git clone https://github.com/letsencrypt/letsencrypt cd letsencrypt/
Kemudian kita perlu menjalankan script untuk menginstalnya:
./letsencrypt-auto
Creating Let’s Encrypt SSL Cert
Kita dapat membuat cert menggunakan perintah berikut. Perhatikan bahwa Anda harus mengubah beberapa hal:
example.com
harus diganti dengan domain Anda[email protected]
harus diganti dengan alamat email Anda pada domain/home/deploy/myapp/current/public
harus diganti dengan path ke aplikasi Rails Anda
sudo /home/deploy/.local/share/letsencrypt/bin/letsencrypt certonly --webroot --webroot-path /home/deploy/myapp/current/public --renew-by-default --email [email protected] --text --agree-tos -d example.com -d www.example.com
Hal lain yang perlu kita lakukan untuk mendapatkan rating A + keamanan SSL kami adalah untuk membuat grup folder kita sendiri. Alasan untuk ini adalah bahwa hal itu melindungi kita dari serangan dari luar. Ini cukup sederhana. Kita hanya perlu menggunakan OpenSSL untuk menghasilkan group folder kemudian menambah konfigurasi Nginx SSL.
cd ~ openssl dhparam -out dhparams.pem 2048
Configurasi Nginx
Sekarang kita sudah terdaftar cert SSL kami dan membuat grup folder, kita dapat memodifikasi konfigurasi Nginx Anda untuk menambahkan SSL.
Tambahkan baris berikut ke blok server Anda untuk aplikasi Anda dan pastikan untuk mengubah example.com ke domain Anda.
listen 443 ssl; ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; ssl_session_timeout 5m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA'; ssl_prefer_server_ciphers on; ssl_session_cache shared:SSL:10m; ssl_dhparam /home/deploy/dhparams.pem;
Setelah memperbarui konfigurasi Nginx Anda Anda dapat menjalankan perintah berikut untuk reload Nginx.
sudo nginx -s reload
Sekarang buka situs di browser Anda https://domainanda.com untuk memverifikasi bahwa Anda dapat mengaksesnya melalui SSL!
Setup Renewal Cron Job
Sejak Let`s Encrypt dirancang untuk sertifikat SSL singkat, kita perlu setup script pembaharuan untuk berjalan secara periodik untuk mencoba untuk memperbaharui sertifikat SSL. Kami akan menambahkan ini ke tugas cron root pengguna sehingga dapat mencoba untuk memperbarui cert setiap hari Senin di 2:30.
Jalankan perintah ini untuk membuka crontab:
sudo crontab -e
Tambahkan baris ini ke bagian bawah yang akan menunjukkan kapan harus menjalankan dan yang script untuk dijalankan.
30 2 * * 1 /home/deploy/.local/share/letsencrypt/bin/letsencrypt renew
Simpan dan tutup file tersebut.
Kesimpulan
Ini sangat mudah dan sederhana untuk setup SSL cert menggunakan Let`s Encrypt. Anda dapat menemukan informasi lebih lanjut di website Let`s Encrypt.
Selamat Mencoba…..