Dalam tutorial ini, kami akan menunjukkan kepada Anda cara menginstal Let's Encrypt SSL dengan Nginx di Ubuntu 16.04 LTS. Bagi Anda yang tidak tahu, LetsEncrypt adalah otoritas sertifikat terbuka gratis (CA ) yang menyediakan sertifikat gratis untuk situs web dan layanan lainnya. Layanan ini, didukung oleh Electronic Frontier Foundation, Mozilla, Cisco Systems, dan Akamai. Sayangnya, sertifikat LetsEncrypt.org saat ini memiliki masa pakai 3 bulan. Ini berarti Anda harus perbarui sertifikat Anda setiap tiga bulan untuk saat ini.
Artikel ini mengasumsikan Anda memiliki setidaknya pengetahuan dasar tentang Linux, tahu cara menggunakan shell, dan yang terpenting, Anda meng-host situs Anda di VPS Anda sendiri. Instalasi cukup sederhana dan mengasumsikan Anda sedang berjalan di akun root, jika tidak, Anda mungkin perlu menambahkan 'sudo
' ke perintah untuk mendapatkan hak akses root. Saya akan menunjukkan langkah-langkah instalasi Let's Encrypt SSL dengan Nginx di server Ubuntu 16.04 LTS (Xenial Xerus).
Prasyarat
- Server yang menjalankan salah satu sistem operasi berikut:Ubuntu 16.04 LTS (Xenial Xerus).
- Sebaiknya Anda menggunakan penginstalan OS baru untuk mencegah potensi masalah.
- Akses SSH ke server (atau cukup buka Terminal jika Anda menggunakan desktop).
- Seorang
non-root sudo user
atau akses keroot user
. Kami merekomendasikan untuk bertindak sebagainon-root sudo user
, namun, karena Anda dapat membahayakan sistem jika tidak berhati-hati saat bertindak sebagai root.
Instal Let's Encrypt SSL Dengan Nginx di Ubuntu 16.04 LTS
Langkah 1. Pertama, pastikan semua paket sistem Anda mutakhir dengan menjalankan apt-get
berikut perintah di terminal.
sudo apt-get update sudo apt-get upgrade
Langkah 2. Menginstal Let's Encrypt SSL di Ubuntu 16.04.
Langkah pertama adalah menginstal certbot, klien perangkat lunak yang akan mengotomatiskan hampir semua proses:
add-apt-repository ppa:certbot/certbot apt-get update apt-get install certbot
Anda juga harus menginstal dan menjalankan Nginx. Tentu saja, jika Anda menambahkan sertifikat ke host web yang dikonfigurasi sebelumnya, ini sudah diinstal:
apt-get install nginx systemctl start nginx
Langkah pertama untuk menginstal mari kita mengenkripsi SSL di Ubuntu Linux adalah menambahkan konfigurasi sederhana di dalam konfigurasi blok server Nginx Anda. Tambahkan baris ini ke konfigurasi blok server Anda:
location ~ /.well-known { allow all; }
Simpan dan keluar untuk menerapkan perubahan:
### nginx -t nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
Mulai ulang Nginx:
systemctl restart nginx
Mendapatkan sertifikat dengan Certbot:
Jalankan perintah seperti yang Anda lihat di bawah, ganti “idroot.us” dengan nama domain asli Anda dan /var/www/idroot.us dengan jalur webroot asli Anda:
certbot certonly -a webroot --webroot-path=/var/www/idroot.us -d idroot.us -d www.idroot.us
Hasil:
[[email protected]:~]certbot certonly -a webroot --webroot-path=/var/www/idroot.us -d idroot.us -d www.idroot.us Saving debug log to /var/log/letsencrypt/letsencrypt.log Obtaining a new certificate Performing the following challenges: http-01 challenge for idroot.us Using the webroot path /var/www/html for all unmatched domains. Waiting for verification... Cleaning up challenges Generating key (2048 bits): /etc/letsencrypt/keys/0001_key-certbot.pem Creating CSR: /etc/letsencrypt/csr/0001_csr-certbot.pem IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at /etc/letsencrypt/live/idroot.us/fullchain.pem. Your cert will expire on 2017-07-16. To obtain a new or tweaked version of this certificate in the future, simply run certbot again. To non-interactively renew *all* of your certificates, run "certbot renew" - If you like Certbot, please consider supporting our work by: Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF: https://eff.org/donate-le [[email protected]:~]
Langkah 3. Konfigurasikan SSL/TLS di server web NGINX.
Pertama, edit file blok server yang Anda tentukan selama konfigurasi melalui Certbot dan tambahkan tiga arahan berikut:
listen 443 ssl http2; ssl_certificate /etc/letsencrypt/live/idroot.us/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/idroot.us/privkey.pem;
Konfigurasi blok server Nginx lengkap mungkin terlihat seperti ini:
server { listen 80; server_name idroot.us www.idroot.us; rewrite ^(.*) https://idroot.us$1 permanent; } server { access_log off; log_not_found off; error_log logs/idroot.us-error_log warn; server_name idroot.us; root /var/www/idroot.us; index index.php index.html index.htm; listen 443 ssl http2; ssl_certificate /etc/letsencrypt/live/idroot.us/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/idroot.us/privkey.pem; ## Stuff required by certbot location ~ /.well-known { allow all; } ## SSL ssl_session_cache shared:SSL:20m; ssl_session_timeout 10m; ssl_prefer_server_ciphers On; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS; ssl_stapling on; ssl_stapling_verify on; resolver 8.8.8.8 8.8.4.4 valid=300s; resolver_timeout 10s; access_log /var/www/idroot.us/logs/access.log; error_log /var/www/idroot.us/logs/error.log; # php-script handler location ~ \.php$ { fastcgi_index index.php; fastcgi_pass 127.0.0.1:9000; fastcgi_read_timeout 150; root /var/www/idroid.us/public_html; fastcgi_param SCRIPT_FILENAME /var/www/idroot.us$fastcgi_script_name; include /etc/nginx/fastcgi_params; } location ~ /\.ht { deny all; } }
Simpan dan tutup file setelah Anda selesai.
Langkah 5. Siapkan Let's Encrypt SSL Auto-Renewal.
Kami akan menambahkan cronjob untuk menjalankan perintah pembaruan setiap minggu, jalankan perintah ini:
export VISUAL=nano; crontab -e
Tempel baris berikut:
01 1 * * 0 /usr/bin/certbot renew >> /var/log/ssl-renew.log 06 1 * * 0 /usr/bin/systemctl nginx reload
Simpan dan Keluar dari tabel crontab.
Ini akan membuat tugas cron baru yang akan dieksekusi setiap hari Minggu pukul 01 pagi, dan kemudian akan memuat ulang server web Nginx untuk menerapkan perubahan. Outputnya adalah login ke /var/log/ssl-renew.log
file untuk analisis lebih lanjut jika diperlukan.
Selamat! Anda telah berhasil menginstal Let's Encrypt. Terima kasih telah menggunakan tutorial ini untuk menginstal Let's Encrypt SSL pada sistem Ubuntu 16.04 LTS. Untuk bantuan tambahan atau informasi berguna, kami sarankan Anda memeriksa Let's Encrypt resmi situs web.