GNU/Linux >> Belajar Linux >  >> Ubuntu

Memulai dengan Lets Encrypt SSL Certificates di Ubuntu

Tutorial ini akan memandu Anda melalui konfigurasi pertama situs web SSL dengan sertifikasi Let's Encrypt. Let's Encrypt adalah otoritas SSL baru yang menyediakan sertifikat SSL gratis. Kami akan menggunakan dua tutorial yang ada ("Cara menyiapkan situs web SSL yang kompatibel dengan sertifikat Let's Encrypt" dan "Server Sempurna - Ubuntu 15.10 (Wily Werewolf) dengan Apache, PHP, MySQL, PureFTPD, BIND, Postfix, Dovecot dan ISPConfig 3").

Penyiapan yang dijelaskan di sini kompatibel dengan server LAMP Ubuntu apa pun, jadi Anda juga dapat menggunakan yang ini sebagai penyiapan dasar.

Tutorial ini akan menunjukkan cara setup Let's Encrypt pada Server tanpa ISPConfig 3 karena akan ada implementasi langsung dari layanan Let's Encrypt di rilis ISPConfig 3 berikutnya (versi 3.1) segera. Jadi jika Anda berencana untuk menggunakan ISPConfig, tunggu rilis 3.1 dan juga tutorial baru.

Membuat situs web

Langkah 1 adalah membuat konfigurasi dan direktori situs web dan mengaktifkan SSL (Apache mod_ssl) untuk itu. Terserah Anda jika Anda menggunakan konfigurasi default untuk satu situs di server atau Anda berencana menggunakan beberapa vhost untuk menghosting lebih dari satu domain. Untuk penggunaan yang lebih andal dan skalabel, saya akan membuat konfigurasi vhost untuk domain "lab" saya ISP1.cloudapp.net dari Azure.

Semua vhosts disimpan di direktori /etc/Apache2/sites-available secara default di Ubuntu dan Debian. Jalankan perintah berikut untuk mengambil daftar file konfigurasi vhost yang ada.

ls -l /etc/apache2/sites-available/

Output saya terlihat seperti ini:

[email protected]:/home/falco# ls -l /etc/apache2/sites-available/
-rw-r--r-- 1 root root 1332 May 20 2015 000-default.conf
-rw-r--r-- 1 root root 6437 May 20 2015 default-ssl.conf

Kita sekarang dapat menggunakan file konfigurasi "default" untuk mengkloning dan mengeditnya atau kita dapat menggunakan konfigurasi kita sendiri. Saya lebih suka menggunakan konfigurasi saya sendiri karena saya melakukannya selama bertahun-tahun, jadi mari buat vhost baru dengan membuat file:

vi /etc/apache2/sites-available/isp1.cloudapp.net.conf

Dalam tempel file ini, konten berikut:

<VirtualHost *:80>
ServerName isp1.cloudapp.net
ServerAlias www.isp1.cloudapp.net

DocumentRoot /home/web/isp1.cloudapp.net/public_html

ErrorLog /home/web/isp1.cloudapp.net/log/habdak.eu_error_log
CustomLog /home/web/isp1.cloudapp.net/log/habdak.eu_access_log combinedScriptAlias /cgi-bin/ /home/web/isp1.cloudapp.net/cgi-bin/
DirectoryIndex index.html index.htm index.php index.php4 index.php5

<Directory /home/web/isp1.cloudapp.net/public_html>
Options -Indexes +IncludesNOEXEC +SymLinksIfOwnerMatch +ExecCGI
allow from all
AllowOverride All Options=ExecCGI,Includes,IncludesNOEXEC,Indexes,MultiViews,SymLinksIfOwnerMatch
Require all granted
AddType application/x-httpd-php .php
AddType application/json .json
</Directory>

<Directory /home/web/isp1.cloudapp.net/cgi-bin>
allow from all
AllowOverride All Options=ExecCGI,Includes,IncludesNOEXEC,Indexes,MultiViews,SymLinksIfOwnerMatch
Require all granted
</Directory>

RemoveHandler .php
RemoveHandler .php5
php_admin_value engine Off
IPCCommTimeout 301
FcgidMaxRequestLen 1073741824
php_value memory_limit 128M
php_value suhosin.session.encrypt Off

</VirtualHost>

<VirtualHost *:443>

ServerName isp1.cloudapp.net
ServerAlias www.isp1.cloudapp.net
DocumentRoot /home/web/isp1.cloudapp.net/public_html

ErrorLog /home/web/isp1.cloudapp.net/log/habdak.eu_error_log
CustomLog /home/web/isp1.cloudapp.net/log/habdak.eu_access_log combined

ScriptAlias /cgi-bin/ /home/web/isp1.cloudapp.net/cgi-bin/
DirectoryIndex index.html index.htm index.php index.php4 index.php5

<Directory /home/web/isp1.cloudapp.net/public_html >
Options -Indexes +IncludesNOEXEC +SymLinksIfOwnerMatch +ExecCGI
allow from all
AllowOverride All Options=ExecCGI,Includes,IncludesNOEXEC,Indexes,MultiViews,SymLinksIfOwnerMatch
Require all granted
AddType application/x-httpd-php .php
AddType application/json .json
</Directory>

<Directory /home/web/isp1.cloudapp.net/cgi-bin >
allow from all
AllowOverride All Options=ExecCGI,Includes,IncludesNOEXEC,Indexes,MultiViews,SymLinksIfOwnerMatch
Require all granted
</Directory>

RemoveHandler .php
RemoveHandler .php5
php_admin_value engine Off
IPCCommTimeout 301
FcgidMaxRequestLen 1073741824
php_value memory_limit 128M
php_value suhosin.session.encrypt Off

SSLEngine on
SSLCertificateFile /home/web/isp1.cloudapp.net /ssl.cert
SSLCertificateKeyFile /home/web/isp1.cloudapp.net /ssl.key
SSLCACertificateFile /home/web/isp1.cloudapp.net /ssl.ca
SSLCipherSuite 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:ECDHE-RSA-DES-CBC3-SHA:ECDHE-ECDSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-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:!KRB5-DES-CBC3-SHA
SSLProtocol All -SSLv2 -SSLv3
SSLCompression off
SSLHonorCipherOrder On

</VirtualHost>

Ganti nama domain dengan domain Anda di mana pun itu terjadi dan simpan file tersebut. Untuk mengaktifkan konfigurasi, jalankan:

a2ensite isp1.cloudapp.net.conf

Sekarang buat kembali folder untuk situs web:

mkdir /home/web
mkdir /home/web/isp1.cloudapp.net
mkdir /home/web/isp1.cloudapp.net/public_html
mkdir /home/web/isp1.cloudapp.net/cgi-bin
mkdir /home/web/isp1.cloudapp.net/logs

Mulai ulang apache untuk menerapkan konfigurasi baru:

sudo service apache2 restart

Sekarang kita harus membuat file sertifikat.

Instal Let's Encrypt dan buat Sertifikat SSL pertama Anda

  Saya lebih suka menggunakan login root untuk administrasi daripada menjalankan sudo sebelum setiap perintah, jadi mari kita su ke pengguna root:

sudo su

Arahkan ke direktori home root Anda:

cd ~root

Instal git untuk mengambil file repositori Let's Encrypt git:

apt-get install git

Sekarang kloning repositori git Let's Encrypt:

git clone https://github.com/letsencrypt/letsencrypt.git letsencrypt

Arahkan ke folder letsencrypt baru Anda:

cd letsencrypt

Dan minta sertifikat SSL Anda:

./letsencrypt-auto certonly --webroot -w /home/web/isp1.cloudapp.net/public_html -d isp1.cloudapp.net

Jika Anda meminta sertifikat untuk domain master (1 domain level alias cloudapp.net) gunakan parameter -d dua kali. Dengan dan tanpa awalan www seperti ini:

 ./letsencrypt-auto certonly --webroot -w /home/web/cloudapp.net/public_html -d cloudapp.net -d www.cloudapp.net

Jika Anda tidak melakukannya, sertifikat tidak akan valid bagi pengunjung yang membuka situs Anda dengan awalan www.

Anda juga dapat menambahkan subdomain lain ke satu sertifikat. Misalnya, jika subdomain admin.cloudapp.net Anda cocok dengan situs yang sama (folder yang sama di server), Anda juga harus menambahkannya ke sertifikat ini. Sayangnya, Anda tidak dapat menggunakan karakter pengganti seperti (*.cloudapp.net) dengan enkripsi mari.

Let's Encrypt akan secara otomatis memperbarui semua dependensi dan memandu Anda melalui penyiapannya. Yang perlu Anda lakukan adalah menunggu jendela prompt yang menanyakan alamat email Anda. Alamat ini hanya digunakan untuk memulihkan data yang hilang.

Kunci baru Anda sekarang disimpan di /etc/letsencrypt/ secara default. Kami akan menautkannya ke direktori situs web kami sehingga kami dapat mengelola kuncinya nanti.

ln -s /etc/letsencrypt/archive/isp1.cloudapp.net/cert1.pem /home/web/isp1.cloudapp.net/ssl.cert
ln -s /etc/letsencrypt/archive/isp1.cloudapp.net/chain1.pem /home/web/isp1.cloudapp.net/ssl.ca
ln -s /etc/letsencrypt/archive/isp1.cloudapp.net/privkey1.pem /home/web/isp1.cloudapp.net/ssl.key

Sekarang Anda seharusnya dapat mengakses situs web Anda dengan SSL. Let's Encrypt akan secara otomatis memberi tahu Anda tentang sertifikat yang kedaluwarsa tepat waktu dengan mengirimkan email kepada Anda ke alamat yang telah Anda berikan dalam penginstalan Let's Encrypt.


Ubuntu
  1. Memulai Dengan wadah LXD di Ubuntu 16.04

  2. Amankan Nginx dengan Lets Encrypt di Ubuntu 20.04

  3. Memulai dengan acme.sh Mari Enkripsi klien SSL

  1. Amankan Apache dengan Lets Encrypt di Ubuntu 20.04

  2. Cara Mengatur Apache Subversion dengan Lets encrypt SSL di Ubuntu 18.04

  3. Cara Menginstal Nextcloud dengan Nginx dan Lets Encrypt SSL di Ubuntu 20.04 LTS

  1. Cara Menginstal Magento 2 dengan Nginx dan Mengenkripsi SSL di Ubuntu 20.04 LTS

  2. Memulai WP-CLI di Ubuntu 15.10

  3. Instal Automad CMS dengan Nginx dan Lets Encrypt SSL di Ubuntu 18.04