Let's Encrypt a Certificate Authority (CA) yang menyediakan sijil SSL percuma dengan klien automatik. Dengan menggunakan Sijil Sijil SSL, anda boleh menyulitkan lalu lintas antara laman web dan pelawat anda. Keseluruhan prosesnya mudah, dan pembaharuan dapat dilakukan secara automatik. Juga, perhatikan bahawa pemasangan atau pembaharuan sijil tidak menyebabkan sebarang downtime.
Dalam tutorial ini, kami akan menggunakan Certbot untuk mendapatkan, memasang dan memperbaharui sijil SSL anda secara automatik. Certbot secara aktif sedang dibangunkan oleh Electronic Frontier Foundation (EFF) dan ia adalah pelanggan disyorkan untuk Let's Encrypt.
Prasyarat
- Contoh Vultr yang menjalankan Ubuntu 16.04
- Nama domain berdaftar yang menunjuk ke pelayan anda
- Nginx
Pasang Certbot
Untuk mendapatkan sijil Sijil SSL, anda perlu memasang klien Certbot pada pelayan anda.
Tambah repositori. Tekan ENTERkekunci apabila diminta untuk menerima.
add-apt-repository ppa:certbot/certbot
Kemas kini senarai pakej.
apt-get update
Teruskan dengan memasang paket Ngbot dan Certbot.
apt-get -y install python-certbot-nginx
Mengkonfigurasi Nginx
Certbot secara automatik mengkonfigurasi SSL untuk Nginx, tetapi untuk melakukannya, perlu mencari blok pelayan dalam fail konfigurasi Nginx anda. Ia melakukan ini dengan memadankan server_name
arahan dalam fail konfigurasi dengan nama domain yang mana anda meminta sijil.
Jika anda menggunakan fail konfigurasi lalai /etc/nginx/sites-available/default
membukanya dengan editor teks seperti nano
dan mencari server_name
arahan. Gantikan garis bawah, _
dengan nama domain anda sendiri:
nano /etc/nginx/sites-available/default
Setelah mengedit fail konfigurasi, server_name
arahan akan kelihatan seperti berikut. Dalam contoh ini, saya menganggap bahawa domain anda adalah example.com dan anda meminta sijil untuk example.com dan www.example.com.
server_name example.com www.example.com;
Teruskan dengan mengesahkan sintaks suntingan anda.
nginx -t
Sekiranya sintaksnya betul, mulakan semula Nginx untuk menggunakan konfigurasi baru. Sekiranya anda mendapat mesej ralat, buka semula fail konfigurasi dan periksa kesalahan ketik, kemudian cuba lagi.
systemctl restart nginx
Memperolehi sijil Let's Encrypt SSL
Perintah berikut akan memperoleh sijil untuk anda. Edit konfigurasi Nginx anda untuk menggunakannya, dan muatkan semula Nginx.
certbot --nginx -d example.com -d www.example.com
Anda juga boleh meminta sijil SSL untuk domain tambahan. Cukup tambahkan pilihan " -d
" seberapa banyak yang anda mahu.
certbot --nginx -d example.com -d www.example.com -d example.net -d example.net
Sekiranya anda hanya ingin mendapatkan sijil dari Let's Encrypt tanpa memasangnya secara automatik, anda boleh menggunakan arahan berikut. Ini membuat perubahan sementara pada konfigurasi Nginx anda untuk mendapatkan sijil dan membalikkannya apabila sijil telah dimuat turun.
certbot --nginx certonly -d example.com -d www.example.com
Jika anda menjalankan Certbot untuk kali pertama, anda akan diminta memasukkan alamat e-mel dan bersetuju dengan syarat perkhidmatan. Alamat e-mel ini akan digunakan untuk pemberitahuan pembaharuan dan keselamatan. Sebaik sahaja anda telah memberikan alamat e-mel, Certbot akan meminta sijil dari Let's Encrypt dan menjalankan cabaran untuk mengesahkan bahawa anda mengawal domain yang dimaksudkan.
Jika Certbot boleh mendapatkan sijil SSL, ia akan bertanya bagaimana anda ingin mengkonfigurasi HTTPS
tetapan anda . Anda boleh mengalihkan pelawat yang melawat tapak web anda melalui sambungan tanpa jaminan atau membiarkannya mengakses sambungan tanpa jaminan. Ini biasanya perlu diaktifkan kerana ia memastikan bahawa pengunjung hanya mengakses versi SSL yang dilindungi oleh tapak web anda. Pilih pilihan anda, kemudian tekan ENTER.
Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
-------------------------------------------------------------------------------
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
-------------------------------------------------------------------------------
Select the appropriate number [1-2] then [enter] (press 'c' to cancel):
Akhirnya, Certbot akan mengesahkan bahawa proses itu berjaya dan di mana sijil anda disimpan. Sijil anda kini dimuat turun dan dipasang.
Mengemas kini pembaharuan
Oleh sebab Let's Encrypt adalah pihak berkuasa perakuan percuma, dan untuk menggalakkan pengguna mengautomasikan proses pembaharuan, sijil hanya sah selama 90 hari. Certbot akan menjaga pembaharuan sijil secara automatik. Ia berbuat demikian dengan menjalankan certbot renew
dua kali sehari melalui systemd
.
Anda boleh memastikan pembaharuan automatik berfungsi dengan menjalankan perintah ini.
certbot renew --dry-run
Anda juga boleh memperbaharui sijil anda secara manual pada bila-bila masa dengan menjalankan arahan berikut.
certbot renew
Konfigurasi yang dipertingkatkan
Perintah di atas memperoleh dan memasang sijil SSL dengan konfigurasi yang sesuai untuk kebanyakan kes. Jika anda ingin melaksanakan langkah-langkah keselamatan lanjutan untuk tapak web anda, anda boleh menggunakan perintah berikut untuk mendapatkan sijil.
certbot --nginx --rsa-key-size 4096 --must-staple -d example.com -d www.example.com
Penggunaan --rsa-key-size 4096
kunci RSA 4096-bit bukannya 2048 bit key, yang lebih selamat. Kelemahan ini adalah hasil utama yang lebih besar dalam overhead prestasi sedikit. Selain itu, penyemak imbas dan peranti lama mungkin tidak menyokong kekunci RSA 4096-bit.
Yang --must-staple
menambah sambungan Staple PSDT Must untuk sijil dan mengkonfigurasi Nginx untuk PSDT mengokot. Pelanjutan ini membolehkan penyemak imbas mengesahkan bahawa sijil anda tidak dicabut dan boleh dipercayai. Walau bagaimanapun, tidak semua penyemak imbas menyokong ciri ini.