GNU/Linux >> Belajar Linux >  >> Cent OS

Cara Instal Let's Encrypt SSL Dengan Nginx di CentOS 7

Dalam tutorial ini, kami akan menunjukkan cara menginstal Let's Encrypt SSL dengan Nginx di CentOS 7. Bagi Anda yang belum tahu, LetsEncrypt adalah open certificate authority (CA) gratis. 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 memperbarui 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 kepada Anda langkah demi langkah instalasi Let's Encrypt SSL with Nginx di server CentOS 7.

Prasyarat

  • Server yang menjalankan salah satu sistem operasi berikut:CentOS 7.
  • 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 ke root user . Kami merekomendasikan untuk bertindak sebagai non-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 CentOS 7

Langkah 1. Pertama, mari kita mulai dengan memastikan sistem Anda mutakhir.

yum clean all
yum -y update

Langkah 2. Menginstal Let's Encrypt SSL di CentOS 7.

Di CentOS 7, Anda dapat menemukan Certbot di repositori EPEL; jika Anda mengaktifkannya, cukup instal apa yang Anda butuhkan:

yum install epel-release
yum install certbot

Anda juga harus menginstal dan menjalankan Nginx. Tentu saja, jika Anda menambahkan sertifikat ke host web yang dikonfigurasi sebelumnya, ini sudah diinstal:

yum install nginx
systemctl start nginx

Langkah pertama untuk menginstal mari kita mengenkripsi SSL di CentOS Linux adalah menambahkan konfigurasi sederhana di dalam konfigurasi virtual host Nginx Anda. Tambahkan baris ini ke konfigurasi vhost Anda:

location ~ /.well-known {
  allow all;
  }

Simpan dan keluar untuk menerapkan perubahan:

nginx -t
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 root web Anda yang sebenarnya:

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. Konfigurasi Let's Encrypt TLS/SSL di Nginx Web Server.

Pertama, edit file Virtual Host 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 vhost 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;
           }
    }

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 CentOS 7. Untuk bantuan tambahan atau informasi berguna, kami sarankan Anda memeriksa situs resmi Let's Encrypt .


Cent OS
  1. Cara Instal phpMyAdmin dengan Nginx di CentOS 7

  2. Cara Menginstal Let's Encrypt dengan Apache di CentOS 7

  3. Cara Menginstal Let's Encrypt di CentOS 8 Dengan Nginx

  1. Cara Menginstal SuiteCRM dengan Nginx di CentOS 7

  2. Cara Menginstal MediaWiki dengan Nginx di CentOS 7

  3. Cara Menginstal WonderCMS dengan Nginx dan Mengenkripsi SSL di CentOS 7

  1. Cara Menginstal WordPress dengan Nginx dan Mengenkripsi SSL di CentOS 8

  2. Cara Menginstal DokuWiki dengan Nginx dan Mari mengenkripsi SSL di CentOS 8

  3. Cara Menginstal Shopware 6 dengan NGINX dan Lets Encrypt di CentOS 8