Instal Wildcard Certs From Lets Encrypt di Nginx di Ubuntu 19.04

Pada bulan Maret 2018 Let's Encrypt menambahkan dukungan untuk sertifikat wildcard. Sertifikat wildcard memungkinkan Anda mengamankan semua subdomain tingkat pertama dari suatu domain dengan satu sertifikat. Sertifikat wildcard hanya dapat diperoleh melalui ACMEv2, yang merupakan versi terbaru dari protokol ACME. Untuk menggunakan ACMEv2 untuk sertifikat wildcard atau non-wildcard, Anda akan memerlukan klien yang telah diperbarui untuk mendukung ACMEv2. Salah satu klien tersebut adalah acme.sh, yang merupakan klien protokol ACME / ACMEv2 yang ditulis murni dalam bahasa Shell (Unix shell) tanpa ketergantungan. Selain itu, domain wildcard harus divalidasi menggunakan tipe tantangan DNS-01. Itu menyiratkan bahwa Anda perlu memodifikasi catatan TXT DNS untuk membuktikan kontrol atas domain untuk mendapatkan sertifikat wildcard.

Dalam panduan ini, kami menjelaskan cara mendapatkan dan menggunakan sertifikat wildcard gratis dari Let's Encrypt di Ubuntu 19.04 dengan menggunakan acme.shklien, alat Lexicon untuk manipulasi otomatis catatan DNS dengan mengonsumsi Vultr API dan menyebarkan sertifikat ke server web Nginx.

Persyaratan

  • Ubuntu 19.04 Vultr cloud server yang baru saja dikerahkan.
  • Anda memiliki nama domain terdaftar. Panduan ini digunakan example.comsebagai domain contoh.
  • Pastikan Anda telah menetapkan data DNS A / AAAA dan CNAME untuk FQDN Anda. Anda mungkin ingin berkonsultasi dengan Pengantar tutorial DNS Vultr jika Anda perlu membiasakan diri dengan konsep DNS.
  • Akses API Vultr diaktifkan di panel kontrol akun Vultr Anda.

Sebelum kamu memulai

Periksa versi Ubuntu.

lsb_release -ds
# Ubuntu 19.04

Buat akun pengguna baru dengan sudoakses dan nama pengguna pilihan Anda dan beralihlah ke sana. Kami menggunakan johndoe.

adduser johndoe --gecos "John Doe"
usermod -aG sudo johndoe
su - johndoe

CATATAN : Ganti johndoedengan nama pengguna Anda.

Siapkan zona waktu.

sudo dpkg-reconfigure tzdata

Pastikan sistem Ubuntu Anda mutakhir.

sudo apt update && sudo apt upgrade -y

Instal paket yang diperlukan.

sudo apt install -y git wget curl socat

Instal Nginx

Instal server web Nginx.

sudo apt install -y nginx

Periksa versinya.

sudo nginx -v
# nginx version: nginx/1.15.9 (Ubuntu)

Instal Python dan Leksikon

Sebagai langkah pertama dalam proses memperoleh sertifikat wildcard dari Let's Encrypt menggunakan acme.sh dan Vultr API, Anda perlu menginstal Python dan Lexicon . Lexicon adalah paket Python yang menyediakan cara untuk memanipulasi catatan DNS pada beberapa penyedia DNS dengan cara standar.

Instal Python jika belum diinstal pada sistem Anda.

sudo apt install -y python3

Konfirmasikan penginstalan dengan memverifikasi versi.

python3 --version
# Python 3.7.3

Instal alat Lexicon. Leksikon adalah alat Python yang memungkinkan Anda untuk memanipulasi catatan DNS pada berbagai penyedia DNS dengan cara standar.

sudo apt install -y lexicon

Periksa versi Leksikon.

lexicon --version
# lexicon 3.0.8

Instal acme.shklien

Acme.shadalah klien protokol ACME yang ditulis murni dalam bahasa Shell (Unix shell) yang mengotomatiskan proses mendapatkan sertifikat yang ditandatangani melalui Let's Encrypt. Ini mendukung ACME v1 dan ACME v2, dan yang paling penting mendukung ACME v2 sertifikat wildcard. Di bagian ini, kami memasang skrip Acme.sh.

CATATAN: Disarankan untuk menggunakan rootpengguna untuk menginstal acme.sh, meskipun tidak memerlukan root/ sudoakses.

Beralih ke rootpengguna dari pengguna biasa jika Anda telah membuatnya.

sudo su - root

Unduh dan pasang acme.sh.

git clone https://github.com/Neilpang/acme.sh.git
cd acme.sh
./acme.sh --install --accountemail "[email protected]"
source ~/.bashrc
cd

Periksa versinya.

acme.sh --version
# v2.8.2

Dapatkan sertifikat wildcard dari Let's Encrypt

Untuk mendapatkan sertifikat wildcard, kami hanya dapat menggunakan metode validasi DNS. Kami menggunakan Lexicon dan Vultr DNS API untuk memanipulasi data DNS TXT.

Dapatkan sertifikat wildcard RSA dan ECC untuk domain Anda.

# Configure your API key and username
export PROVIDER=vultr
export LEXICON_VULTR_USERNAME="[email protected]"
export LEXICON_VULTR_TOKEN="XXXXXXXXXXXXXXX"

# RSA 2048
acme.sh --issue --dns dns_lexicon -d example.com -d '*.example.com' --keylength 2048
# ECC 256
acme.sh --issue --dns dns_lexicon -d example.com -d '*.example.com' --keylength ec-256

CATATAN : Jangan lupa ganti example.comdengan nama domain Anda, dan ganti nilai placeholder Vultr API dengan milik Anda.

Setelah menjalankan perintah sebelumnya, sertifikat dan kunci Anda ada di:

  • Untuk RSA: ~/.acme.sh/example.comdirektori.
  • Untuk ~/.acme.sh/example.com_eccdirektori ECC / ECDSA:.

CATATAN : Anda tidak boleh menggunakan file cert dalam ~/.acme.sh/folder, mereka hanya untuk penggunaan internal, struktur direktori dapat berubah di masa depan.

Untuk daftar sertifikat Anda, Anda dapat menjalankan:

acme.sh --list

Buat folder untuk menyimpan sertifikat Anda dalam produksi. Kami menggunakan /etc/letsencryptdirektori.

sudo mkdir -p /etc/letsencrypt/example.com
sudo mkdir -p /etc/letsencrypt/example.com_ecc

Instal / salin sertifikat untuk penggunaan produksi di server Anda.

# RSA
acme.sh --install-cert -d example.com \
        --cert-file /etc/letsencrypt/example.com/cert.pem \
        --key-file /etc/letsencrypt/example.com/private.key \
        --fullchain-file /etc/letsencrypt/example.com/fullchain.pem \
        --reloadcmd "sudo systemctl reload nginx.service"

# ECC/ECDSA
acme.sh --install-cert -d example.com --ecc \
        --cert-file /etc/letsencrypt/example.com_ecc/cert.pem \
        --key-file /etc/letsencrypt/example.com_ecc/private.key \
        --fullchain-file /etc/letsencrypt/example.com_ecc/fullchain.pem \
        --reloadcmd "sudo systemctl reload nginx.service"

Sekarang kita telah berhasil memperoleh sertifikat wildcard dari Let's Encrypt, kita perlu mengkonfigurasi server web Nginx. Semua sertifikat diperbarui secara otomatis setiap 60 hari.

Setelah mendapatkan dan menginstal sertifikat ke lokasi pilihan Anda, Anda dapat keluar dari rootpengguna ke sudopengguna biasa dan terus mengelola server Anda dengan menggunakan sudojika diperlukan.

exit

Konfigurasikan server web Nginx

Jalankan sudo vim /etc/nginx/sites-available/example.com.confdan isi file dengan konten berikut. Ganti semua kemunculan example.comdengan nama domain Anda sendiri.

server {

  listen 443 ssl http2;
  listen [::]:443 ssl http2;

  server_name example.com *.example.com;
  root /var/www/example.com;

  # RSA
  ssl_certificate /etc/letsencrypt/example.com/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/example.com/private.key;
  # ECDSA
  ssl_certificate /etc/letsencrypt/example.com_ecc/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/example.com_ecc/private.key;

}

Aktifkan example.com.confkonfigurasi baru dengan menautkan file ke sites-enableddirektori.

sudo ln -s /etc/nginx/sites-available/example.com.conf /etc/nginx/sites-enabled/

Uji konfigurasi Nginx.

sudo nginx -t

Muat ulang Nginx.

sudo systemctl reload nginx.service

Itu dia. Kami menyebarkan sertifikat wildcard ke Nginx, menggunakan acme.sh, Lexicon, dan Vultr API. Sertifikat wildcard dapat berguna ketika Anda ingin mengamankan beberapa subdomain tingkat pertama yang dihasilkan secara dinamis.



Leave a Comment

Menggunakan kunci SSH Anda untuk masuk ke pengguna non-root

Menggunakan kunci SSH Anda untuk masuk ke pengguna non-root

Vultr menyediakan fitur yang memungkinkan Anda untuk melakukan pra-instal kunci SSH setelah membuat instance baru. Ini memungkinkan Anda untuk mengakses pengguna root server, namun, th

Menyiapkan Chroot di Debian

Menyiapkan Chroot di Debian

Artikel ini akan mengajarkan Anda cara mengatur chroot jail di Debian. Saya berasumsi bahwa Anda menggunakan Debian 7.x. Jika Anda menjalankan Debian 6 atau 8, ini mungkin berhasil, bu

Cara Mengubah Port SSH Pada CoreOS

Cara Mengubah Port SSH Pada CoreOS

Mengubah port SSH Anda dapat membantu mencegah masalah keamanan. Dalam panduan ini, Anda akan belajar cara mengubah port SSH pada CoreOS. Langkah 1: Mengubah port SSH

Menggunakan Otentikasi Dua Faktor untuk masuk ke Panel Kontrol Vultr

Menggunakan Otentikasi Dua Faktor untuk masuk ke Panel Kontrol Vultr

Two Factor Authentication, atau 2FA, adalah teknik yang menambahkan lapisan keamanan dengan meminta langkah otentikasi tambahan untuk masuk. Untuk keamanan yang kuat

Cara Mengaktifkan TLS 1.3 di Apache pada Debian 10

Cara Mengaktifkan TLS 1.3 di Apache pada Debian 10

Menggunakan Sistem yang Berbeda? TLS 1.3 adalah versi protokol Transport Layer Security (TLS) yang diterbitkan pada 2018 sebagai standar yang diusulkan dalam RFC 8446

Mengamankan MongoDB

Mengamankan MongoDB

MongoDB tidak aman secara default. Jika Anda menginstal MongoDB dan meluncurkannya tanpa mengonfigurasinya untuk otentikasi, Anda akan mengalami kesulitan

Cara Mengamankan SSH Lebih Lanjut dengan Urutan Port-knocking di Ubuntu 18.04

Cara Mengamankan SSH Lebih Lanjut dengan Urutan Port-knocking di Ubuntu 18.04

Menggunakan Sistem yang Berbeda? Pendahuluan Selain mengubah port default untuk SSH, dan menggunakan pasangan kunci untuk otentikasi, port knocking dapat digunakan t

Cara Mengaktifkan TLS 1.3 di Apache pada FreeBSD 12

Cara Mengaktifkan TLS 1.3 di Apache pada FreeBSD 12

Menggunakan Sistem yang Berbeda? TLS 1.3 adalah versi protokol Transport Layer Security (TLS) yang diterbitkan pada 2018 sebagai standar yang diusulkan dalam RFC 8446

Cara Memasang ModSecurity untuk Nginx pada CentOS 7, Debian 8, dan Ubuntu 16.04

Cara Memasang ModSecurity untuk Nginx pada CentOS 7, Debian 8, dan Ubuntu 16.04

ModSecurity adalah modul firewall aplikasi web sumber terbuka (WAF) yang bagus untuk melindungi Apache, Nginx, dan IIS dari berbagai serangan dunia maya yang lebih besar

Port Forwarding dan Proxying Menggunakan OpenSSH

Port Forwarding dan Proxying Menggunakan OpenSSH

Pendahuluan SSH, juga dikenal sebagai Secure Shell, dapat digunakan lebih dari sekadar mendapatkan shell jarak jauh. Artikel ini akan menunjukkan bagaimana SSH dapat digunakan untuk

Mengamankan SSH di Ubuntu 14.04

Mengamankan SSH di Ubuntu 14.04

Setelah Anda membuat server baru, ada beberapa konfigurasi tweak yang harus Anda lakukan untuk memperkeras keamanan server Anda. Buat pengguna baru Sebagai roo

Setup LetsEncrypt Di Linux

Setup LetsEncrypt Di Linux

LetsEncrypt adalah otoritas sertifikat dengan klien otomatis. Singkatnya, ini berarti Anda dapat mengamankan situs web Anda tanpa biaya. Itu benar, Anda bisa g

Mengkonfigurasi Apache dengan TLS / SSL Certificate yang ditandatangani sendiri pada Ubuntu 16.04

Mengkonfigurasi Apache dengan TLS / SSL Certificate yang ditandatangani sendiri pada Ubuntu 16.04

SSL, dan penerusnya TLS (Secure Sockets Layer / Transport Layer Security) menambahkan lapisan enkripsi antara klien dan server. Tanpa ini

Cara Memasang OpenVAS Vulnerability Scanner di Ubuntu 16.04

Cara Memasang OpenVAS Vulnerability Scanner di Ubuntu 16.04

Pendahuluan OpenVAS adalah rangkaian sumber terbuka yang dapat digunakan untuk pemindaian kerentanan dan manajemen kerentanan. Itu singkatan dari Open Vulnerabilit

Cara Nonaktifkan SELinux pada CentOS 7

Cara Nonaktifkan SELinux pada CentOS 7

SELinux, singkatan dari Security-Enhanced Linux, adalah peningkatan keamanan untuk sistem operasi Linux. Ini adalah sistem pelabelan yang memblokir banyak sistem

Menghasilkan Kunci SSH pada macOS Sierra (10.12) dan High Sierra (10.13)

Menghasilkan Kunci SSH pada macOS Sierra (10.12) dan High Sierra (10.13)

Tutorial ini akan menunjukkan kepada Anda bagaimana membuat dan mengamankan kunci SSH pada macOS Sierra (10.12) dan macOS High Sierra (10.13). Kunci SSH memungkinkan Anda untuk masuk

Cara Memasang Ntopng di Ubuntu 16.04

Cara Memasang Ntopng di Ubuntu 16.04

Pendahuluan Ntopng adalah alat sumber terbuka yang digunakan untuk memantau berbagai protokol jaringan di server Anda. Ini adalah versi generasi berikutnya dari origina

Mari Mengenkripsi: Bermigrasi Dari TLS-SNI-01

Mari Mengenkripsi: Bermigrasi Dari TLS-SNI-01

Lets Encrypt adalah layanan gratis yang menghasilkan sertifikat untuk mengamankan situs web Anda. Ini mendukung pembuatan berbagai jenis sertifikat, termasuk di dalamnya

Mengamankan Server Apache pada CentOS 6

Mengamankan Server Apache pada CentOS 6

Sangat mudah untuk mengambil jalan pintas saat mengamankan server, tetapi Anda akan mengambil risiko kehilangan data jika penyerang mendapatkan akses root ke salah satu server Anda. Malam

Wawasan tentang 26 Teknik Analisis Data Besar: Bagian 1

Wawasan tentang 26 Teknik Analisis Data Besar: Bagian 1

Wawasan tentang 26 Teknik Analisis Data Besar: Bagian 1

6 Hal yang Sangat Menggila dari Nintendo Switch

6 Hal yang Sangat Menggila dari Nintendo Switch

Banyak dari Anda tahu Switch keluar pada Maret 2017 dan fitur-fitur barunya. Bagi yang belum tahu, kami sudah menyiapkan daftar fitur yang membuat 'Switch' menjadi 'gadget yang wajib dimiliki'.

Janji Teknologi Yang Masih Belum Ditepati

Janji Teknologi Yang Masih Belum Ditepati

Apakah Anda menunggu raksasa teknologi untuk memenuhi janji mereka? periksa apa yang belum terkirim.

Fungsionalitas Lapisan Arsitektur Referensi Big Data

Fungsionalitas Lapisan Arsitektur Referensi Big Data

Baca blog untuk mengetahui berbagai lapisan dalam Arsitektur Big Data dan fungsinya dengan cara yang paling sederhana.

Bagaimana AI Dapat Membawa Otomatisasi Proses ke Tingkat Selanjutnya?

Bagaimana AI Dapat Membawa Otomatisasi Proses ke Tingkat Selanjutnya?

Baca ini untuk mengetahui bagaimana Kecerdasan Buatan menjadi populer di antara perusahaan skala kecil dan bagaimana hal itu meningkatkan kemungkinan untuk membuat mereka tumbuh dan memberi keunggulan pada pesaing mereka.

CAPTCHA: Berapa Lama Itu Bisa Tetap Menjadi Teknik yang Layak Untuk Perbedaan Human-AI?

CAPTCHA: Berapa Lama Itu Bisa Tetap Menjadi Teknik yang Layak Untuk Perbedaan Human-AI?

CAPTCHA telah berkembang cukup sulit bagi pengguna untuk dipecahkan dalam beberapa tahun terakhir. Apakah itu akan tetap efektif dalam deteksi spam dan bot di masa mendatang?

Singularitas Teknologi: Masa Depan Peradaban Manusia yang Jauh?

Singularitas Teknologi: Masa Depan Peradaban Manusia yang Jauh?

Saat Sains Berkembang dengan kecepatan tinggi, mengambil alih banyak upaya kita, risiko menundukkan diri kita pada Singularitas yang tidak dapat dijelaskan juga meningkat. Baca, apa arti singularitas bagi kita.

Telemedicine Dan Perawatan Kesehatan Jarak Jauh: Masa Depan Ada Di Sini

Telemedicine Dan Perawatan Kesehatan Jarak Jauh: Masa Depan Ada Di Sini

Apa itu telemedicine, perawatan kesehatan jarak jauh dan dampaknya terhadap generasi mendatang? Apakah itu tempat yang bagus atau tidak dalam situasi pandemi? Baca blog untuk menemukan tampilan!

Pernahkah Anda Bertanya-tanya Bagaimana Hacker Menghasilkan Uang?

Pernahkah Anda Bertanya-tanya Bagaimana Hacker Menghasilkan Uang?

Anda mungkin pernah mendengar bahwa peretas menghasilkan banyak uang, tetapi pernahkah Anda bertanya-tanya bagaimana cara mereka mendapatkan uang sebanyak itu? mari berdiskusi.

Pembaruan Tambahan macOS Catalina 10.15.4 Menyebabkan Lebih Banyak Masalah Daripada Menyelesaikan

Pembaruan Tambahan macOS Catalina 10.15.4 Menyebabkan Lebih Banyak Masalah Daripada Menyelesaikan

Baru-baru ini Apple merilis macOS Catalina 10.15.4 pembaruan suplemen untuk memperbaiki masalah tetapi tampaknya pembaruan menyebabkan lebih banyak masalah yang mengarah ke bricking mesin mac. Baca artikel ini untuk mempelajari lebih lanjut