Pengenalan
SSL (singkatan dari Secure Sockets Layer ) dan penggantinya, TLS (singkatan dari Transport Layer Security ) adalah protokol kriptografi untuk menjamin komunikasi melalui Internet. Ia dapat digunakan untuk membuat sambungan selamat ke laman web.
Pengenalan
Pastikan Nginx dan OpenSSL dipasang di pelayan anda. Dalam artikel ini, kami akan menunjukkan prosesnya dengan membuat sijil SSL yang ditandatangani sendiri.
Langkah 1: Buat direktori untuk sijil dan kunci peribadi
Kami akan membuat direktori (dan memasukkannya) di dalam / etc / nginx (dengan asumsi bahawa direktori tersebut adalah direktori konfigurasi Nginx), dengan:
sudo mkdir /etc/nginx/ssl
cd /etc/nginx/ssl # we'll perform our next few steps in this dir
Langkah 2: Buat kunci peribadi dan CSR
Mari mulakan dengan membuat kunci peribadi laman web ini. Dalam contoh ini, kami akan menggunakan kekunci 4096-bit untuk keselamatan yang lebih kuat. Perhatikan bahawa 2048-bit juga selamat, tetapi JANGAN GUNAKAN KUNCI SWASTA 1024-BIT!
sudo openssl genrsa -out example.com.key 4096
Sekarang, buat permintaan menandatangani sijil (CSR) untuk menandatangani sijil. Kami akan menggunakan SHA-2 512-bit. Perhatikan -sha512
pilihannya.
sudo openssl req -new -key example.com.key -out example.com.csr -sha512
Ini akan meminta senarai bidang yang perlu diisi. Pastikan Common Name
ditetapkan ke nama domain anda! Juga, tinggalkan A challenge password
dan kosongkan An optional company name
.
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:US
State or Province Name (full name) [Some-State]:CA
Locality Name (eg, city) []:LosAngeles
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Example Inc
Organizational Unit Name (eg, section) []:Security
Common Name (e.g. server FQDN or YOUR name) []:*.example.com
Email Address []:[email protected]
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
Langkah 3: Tandatangani sijil anda
Hampir siap! Sekarang kita hanya perlu menandatanganinya. Jangan lupa ganti 365 (luput selepas 365 hari) ke bilangan hari yang anda sukai.
sudo openssl x509 -req -days 365 -in example.com.csr -signkey example.com.key -out example.com.crt -sha512
Sekarang, kami selesai membuat sijil yang ditandatangani sendiri.
Langkah 4: Sediakan
Buka fail konfigurasi SSL contoh Nginx:
sudo nano /etc/nginx/conf.d/example_ssl.conf
Ketidakpuasan dalam bahagian di bawah baris HTTPS Server . Padankan konfigurasi anda dengan maklumat di bawah, ganti example.com
yang server_name
sesuai dengan nama domain atau alamat IP anda. Tetapkan juga direktori root anda.
# HTTPS server
server {
listen 443 ssl;
server_name example.com;
ssl_certificate /etc/nginx/ssl/example.com.crt;
ssl_certificate_key /etc/nginx/ssl/example.com.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ecdh_curve secp384r1;
ssl_ciphers ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:!aNULL:!eNULL:!EXPORT:!DES:!3DES:!MD5:!PSK:!RC4; # no RC4 and known insecure cipher
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
}
Kemudian mulakan semula Nginx.
service nginx restart
Sekarang, lawati laman web anda dengan https
alamat ( https://your.address.tld
). Penyemak imbas web anda akan menunjukkan sambungan yang selamat menggunakan sijil yang ditandatangani sendiri.