Pada panduan cara konfigurasi Graylog Nginx ini, saya mengulas konfigurasi server tersebut dengan tambahan SSL dari Letsencrypt. Dengan cara ini, tentunya kamu dapat menggunakan tambahan domain atau nama host dengan sertifikasi SSL yang terverifikasi.
Mengkonfigurasi Graylog Nginx reverse proxy dengan tambahan Letsencrypt SSL
Pada bagian pertama ini, tentunya perlu melakukan penyesuaian instalasi klien Letsencrpt sepert halnya certbot yang akan kita gunakan untuk mendapatkan sertifikasi SLL yang akan digunakan untuk web aplikasi monitoring Graylog.
Instal certbot-auto
# wget https://dl.eff.org/certbot-auto -P /usr/local/bin
# chmod a+x /usr/local/bin/certbot-auto
Buka port https di Firewall
Perlu membuka port http untuk mendapatkan sertifikat SSL, sehingga kamu perlu membuka firewall jika ingin menambahkan sertifikat SSL pada web aplikasi monitoringmu.
Jika kamu menggunakan ufw atau iptables, gantilah perintah tersebut dengan perintah
# firewall-cmd --add-service={http,https} --permanent
# firewall-cmd --reload
Permintaan sertifikat SSL
Permintaan untuk mendapatkan sertifikat Letsencrypt menggunakan perintah certbot-auto
# export DOMAIN=`hostname -f`
# export EMAIL="email@domain.com"
# certbot-auto certonly --standalone -d $DOMAIN --preferred-challenges http \
--agree-tos -n -m $EMAIL --keep-until-expiring
Langkah ini mungkin perlu membutuhkan waktu yang cuku lama, karena akan dimulai dengan dependensi Bootstrapping, serta membuat virtual python, instal paket Python, dan langkah terarkhir pembuatan sertifikat SSL. Tunggu proses tersebut, hingga mendapatkan informasi bahwa sertifikat berhasil dibuat.
Informasi SSL yang sukses terlihat seperti ini:
.....Instal dan konfigurasikan Nginx
IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/domain.com/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/domain.com/privkey.pem Your cert will expire on 2018-06-07. To obtain a new or tweaked
version of this certificate in the future, simply run certbot-auto
again. To non-interactively renew *all* of your certificates, run
"certbot-auto 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
Sekarang kamu perlu menginstal dan mengkonfigurasi Nginx
# yum -y install nginx --> CentOS
# apt-get install nginx --> Ubuntu 16.04, Debian 8/9Kamu dapat meletakkan konfigurasi nginx untuk graylog pada bagian bawah /etc/nginx/conf.d/graylog.conf. Ganti domain.com dengan nama domain / subdomain graylog yang telah kamu punya.
serverSimpan konfigurasi dan periksa kembali apakah nginx sintaksnya sudah valid.
{
listen 443 ssl;
server_name domain.com www.domain.com;
location /
{
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Graylog-Server-URL https://domain.com/api;
proxy_pass http://127.0.0.1:9000;
# proxy_pass http://ip-address:9000;
}
ssl on;
ssl_certificate /etc/letsencrypt/live/domain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/domain.com/privkey.pem;
ssl_session_timeout 5m;
ssl_ciphers EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
ssl_protocols TLSv1.2;
ssl_prefer_server_ciphers on;
access_log /var/log/nginx/graylog.access.log;
error_log /var/log/nginx/graylog.error.log;
}
# http to https redirection
server {
listen 80;
server_name domain.com www.domain.com;
add_header Strict-Transport-Security max-age=2592000;
rewrite ^ https://$server_name$request_uri? permanent;
}
# nginx -tSaatnya kamu Mulai dan mengaktifkan layanan nginx
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Lanjutkan perintah dibawah ini untuk memulai dan mengaktifkan layanan nginx.
# systemctl start nginx
# systemctl enable nginx
Coba akses halaman web aplikasi Gaylog dengan domain yang telah kamu setting, dan jika berhasil maka kamu akan di arahkan menggunakan enkripsi HTTPS.