Prasyarat
- Pelayan Vultr yang menjalankan Arch Linux terkini (lihat artikel ini .)
- Seorang pelayan web yang menjalankan, sama ada Apache atau Nginx
- Akses Sudo
- Perintah yang dikehendaki dijalankan sebagai root yang diawali oleh
#, dan yang dapat dijalankan sebagai pengguna biasa oleh $. Cara yang disyorkan untuk menjalankan arahan sebagai root ialah, sebagai pengguna biasa, awalan masing-masing dengan sudo.
- Mempunyai editor teks yang dipasang, dan akrab dengannya, seperti vi, vim, nano, emacs atau editor lain yang serupa.
Selamat Melayani Melalui HTTPS
Melayan kandungan melalui HTTPS boleh menggunakan penyulitan yang sangat kuat, jadi tiada siapa yang memintas lalu lintas antara pengguna dan pelayan web boleh membacanya. Ia bukan sahaja menyulitkan lalu lintas itu sendiri, tetapi juga URL yang diakses, yang boleh mendedahkan maklumat. Untuk beberapa waktu, Google telah menentukan peringkat carian sebahagian berdasarkan apakah halaman menggunakan HTTPS, sebagai bagian dari inisiatif HTTPS Everywhere.
Nota : pemeriksaan DNS tidak mendedahkan nama domain yang disambungkan, tetapi keseluruhan URL tidak didedahkan semasa proses tersebut.
Dapatkan Sijil SSL / TLS
Secara teknikal, TLS menggantikan SSL untuk Sijil HTTPS, tetapi, kebanyakan tempat terus memanggil Sijil TLS dengan Sijil SSL istilah yang lebih popular. Setelah penggunaan biasa, panduan ini akan melakukan perkara yang sama.
Untuk menggunakan HTTPS, pelayan web anda memerlukan kunci persendirian ( .key) untuk digunakan secara persendirian dan sijil ( .crt) untuk berkongsi orang awam yang termasuk kunci awam. Sijil mesti ditandatangani. Anda boleh menandatanganinya sendiri, tetapi penyemak imbas moden akan mengadu bahawa mereka tidak mengenali penandatangannya. Sebagai contoh, Chrome akan menunjukkan: Your connection is not private. Attackers might be trying to steal your information... NET::ERR_CERT_AUTHORITY_INVALID. Jika hanya sekumpulan orang yang menggunakan laman web, ini boleh diterima, kerana pelayar akan membenarkan cara untuk meneruskan. Contohnya, pada Chrome, klik "Lanjutan", kemudian "Teruskan ke ... (tidak selamat)"; ia masih akan menunjukkan "Tidak selamat" dan menyeberang "https".
Perhatikan bahawa proses ini akan meminta anda untuk negara, negara bagian / wilayah, wilayah, organisasi, unit organisasi, dan nama umum, dan alamat e-mel anda; semuanya boleh diakses dalam penyemak imbas sesiapa sahaja yang menyambung ke laman web anda melalui HTTPS.
Perhatikan juga bahawa jika anda memberikan sijil hos maya, anda perlu memberikan nama fail yang berbeza di bawah, dan menunjukkannya dalam konfigurasi hos maya anda.
Tukar ke dalam direktori yang sesuai untuk pelayan web anda.
Sekiranya anda memasang Apache:
$ cd /etc/httpd/conf
Jika anda memasang Nginx:
$ cd /etc/nginx
Sekali dalam direktori yang betul, buat kunci peribadi ( server.key) dan sijil ditandatangani sendiri ( server.crt):
# openssl req -new -x509 -nodes -newkey rsa:4096 -keyout server.key -out server.crt -days 825
Tetapkan kebenaran baca sahaja, dan hanya biarkan kunci peribadi dibaca oleh root:
# chmod 400 server.key
# chmod 444 server.crt
Sebagai alternatif, anda boleh mendapatkan sijil yang ditandatangani oleh pihak berkuasa sijil yang dipercayai. Anda boleh membayar pelbagai syarikat (pihak berkuasa sijil) untuk menandatangani sijil anda untuk anda. Apabila mempertimbangkan pihak berkuasa perakuan, penting untuk melihat pelayar mana dan versi mana yang akan mengenali mereka. Sesetengah pihak berkuasa sijil yang lebih baru mungkin tidak diiktiraf sebagai lebih rasmi daripada sijil ditandatangani sendiri pada versi pelayar lama.
Anda biasanya tidak hanya memerlukan alamat IP awam, tetapi juga nama domain. Beberapa pihak berkuasa sijil dapat mengeluarkan sijil ke alamat IP awam, tetapi jarang dilakukan.
Banyak pembekal menawarkan percubaan 30 hari percuma, yang disarankan untuk dimulakan sehingga anda dapat memastikan prosesnya sesuai untuk anda sebelum anda membayarnya. Harga boleh berubah dari beberapa dolar setahun ke beratus-ratus, bergantung kepada jenis dan pilihannya seperti pelbagai domain atau sub-domain. Sijil standard hanya akan menunjukkan bahawa pihak berkuasa menandatangani telah mengesahkan orang yang memperoleh sijil dapat membuat perubahan pada domain. Sijil Pengesahan Lanjutan juga akan menunjukkan pihak berkuasa menandatangani telah melakukan beberapa usaha wajar untuk memeriksa pemohon dan akan, dalam penyemak imbas moden, menunjukkan bar hijau di dalam atau berhampiran URL. Apabila mengesahkan bahawa anda boleh membuat perubahan pada domain, beberapa pihak berkuasa menandatangani akan meminta anda menerima e-mel pada alamat membunyikan penting di nama domain, seperti[email protected]. Banyak yang menawarkan pengesahan alternatif, seperti memberi anda fail untuk diletakkan di pelayan anda, seperti memasukkan fail mereka /srv/http/.well-known/pki-validation/untuk Apache atau /usr/share/nginx/html/.well-known/pki-validation/Nginx, untuk konfigurasi direktori hosting tunggal; atau buat sementara entri CNAME yang mereka berikan kepada anda dalam rekod DNS domain anda.
Pihak berkuasa menandatangani yang anda pilih mungkin mempunyai langkah yang sedikit berbeza, tetapi kebanyakan akan menerima prosedur berikut:
Dalam direktori yang betul, buat kunci persendirian ( server.key):
# openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:4096 -out server.key
Tetapkan kunci peribadi untuk baca sahaja, hanya dengan root:
# chmod 400 server.key
Hasilkan permintaan menandatangani sijil ( server.csr). Anda mesti meletakkan nama domain anda apabila ia meminta anda untuk Common Name, dan anda boleh meninggalkan kata laluan cabaran kosong:
# openssl req -new -sha256 -key server.key -out server.csr
Tetapkan permintaan penandatanganan sijil ke hanya baca, hanya dengan root:
# chmod 400 server.csr
Lihat kandungan permintaan menandatangani sijil. Maklumat ini base64 dikodkan, jadi akan kelihatan seperti aksara rawak:
# cat server.csr
-----BEGIN CERTIFICATE REQUEST-----
.....
-----END CERTIFICATE REQUEST-----
Ikuti proses pihak berkuasa penandatanganan anda, dan apabila diminta untuk menampal CSR anda, salin dan tampal keseluruhan fail ini termasuk -----barisnya. Bergantung kepada pihak berkuasa menandatangani yang anda pilih dan jenis sijil, mereka mungkin akan memberikan sijil yang ditandatangani dengan segera, atau mungkin beberapa hari. Setelah mereka memberi anda sijil yang ditandatangani, salin (termasuk -----BEGIN CERTIFICATE-----dan -----END CERTIFICATE-----baris) ke dalam fail bernama server.crt, di direktori yang betul, yang diberikan di atas untuk pelayan web anda, dan tetapkan ke hanya-baca:
# chmod 444 server.crt
Sekiranya anda menggunakan firewall, anda perlu mendayakan trafik masuk TCP ke pelabuhan 443.
Untuk Apache
Edit /etc/httpd/conf/httpd.confdan laporkan perkara ini:
LoadModule ssl_module modules/mod_ssl.so
LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
Include conf/extra/httpd-ssl.conf
Perhatikan jika anda menggunakan hos maya, membuat perubahan di atas /etc/httpd/conf/httpd.confakan menggunakan sijil yang sama pada semua hos. Untuk memberikan setiap sijil sijilnya sendiri untuk mengelakkan pelayar yang mengadu mengenai sijil yang tidak sepadan dengan nama domain, anda perlu mengedit setiap fail konfigurasi mereka /etc/httpd/conf/vhosts/untuk menunjuk kepada sijil dan kunci persendiriannya sendiri:
- Tukar
<VirtualHost *:80>ke <VirtualHost *:80 *:443>.
-
Dalam VirtualHostbahagian tersebut, tambahkan yang berikut:
SSLEngine on
SSLCertificateFile "/etc/httpd/conf/YOUR-DOMAIN-NAME.com.crt"
SSLCertificateKeyFile "/etc/httpd/conf/YOUR-DOMAIN-NAME.com.key"
Restart Apache:
# systemctl restart httpd
Untuk Nginx
Edit /etc/nginx/nginx.confdan dekat bahagian bawah, uncomment keluar HTTPS serverseksyen dan ubah baris ke yang berikut:
ssl_certificate server.crt;
ssl_certificate_key server.key;
root /usr/share/nginx/html;
Perhatikan jika anda menggunakan hos maya, membuat perubahan di atas /etc/nginx/nginx.confakan menghantar semua hos ke lokasi tersebut. Untuk memberikan sijil sendiri setiap host, anda perlu mengedit setiap fail konfigurasi mereka /etc/nginx/sites-enabled/untuk mempunyai blok pelayan tambahan untuk menunjuk ke sijil dan kunci persendiriannya sendiri:
server {
listen 443 ssl;
server_name YOUR-DOMAIN-NAME.com;
ssl_certificate YOUR-DOMAIN-NAME.com.crt;
ssl_certificate_key YOUR-DOMAIN-NAME.com.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location / {
root /usr/share/nginx/YOUR-DOMAIN-NAME.com;
index index.html index.htm;
}
}
Mulakan semula Nginx:
# systemctl restart nginx