Letsencrypt For Nginx Kullanarak Rocket Chat SSL Yapılandırması Nasıl Kurulur
Rocket sohbeti yüklerken ücretsiz veya satın alma kullanarak ssl yüklemeniz gerekir. Şimdi Let’Encrypt tamamen ücretsiz ssl hizmetini kullanabileceğinizi göstermeliyim. Bu sertifikanın varsayılan geçerlilik tarihi 3 aydır. Ancak sunucumda otomatik yenileme işlemini kurdum. Sunucunuz yerel ise, bu nedenle ileri bağlantı noktası için NAT sistemi kullanmalısınız.
NAT PORT 443 (LAN) ➺ 443 (WAN) << Parmenent
NAT PORT 80 (LAN) ➺ 80 (WAN) << Yalnızca kurulumdan önce ssl
Genel IP adresim: 45.251.231.171
Yerel IP adresim: 10.66.30.10
Adım # 01: Sunucu güncellemeniz ve yükseltmeniz olmalı, ardından nginx web sunucusunu kurmalısınız.
root@Rocket-Chat:~# apt-get update root@Rocket-Chat:~# apt-get install software-properties-common python-software-properties root@Rocket-Chat:~# apt-get install nginx root@Rocket-Chat:~# systemctl status nginx.service
Ssl’yi yüklemeden önce, sunucunuzdan 80 bağlantı noktasını devre dışı bırakmalısınız.
root@Rocket-Chat:~# netstat -pan | grep ":80" root@Rocket-Chat:~# pkill -f nginx root@Rocket-Chat:~# systemctl start nginx.service root@Rocket-Chat:~# systemctl status nginx.service
Adım # 02: Şimdi let’sencrypt ve certbot’u kurun ve nginx web sunucusunu yapılandırın.
root@Rocket-Chat:~# add-apt-repository ppa:certbot/certbot root@Rocket-Chat:~# apt-get update root@Rocket-Chat:~# apt-get install letsencrypt root@Rocket-Chat:~# wget https://dl.eff.org/certbot-auto -P /usr/local/bin root@Rocket-Chat:~# chmod a+x /usr/local/bin/certbot-auto root@Rocket-Chat:~# export DOMAIN="chat.kockerim.com" root@Rocket-Chat:~# export EMAIL_ALERT="admin@kockerim.com"
Adım # 03: let’sencrypt for nginx sunucusundan ücretsiz SSL yükleyin.
root@Rocket-Chat:~# /usr/local/bin/certbot-auto certonly --standalone -d $DOMAIN --preferred-challenges http --agree-tos -n -m $EMAIL_ALERT --keep-until-expiring
Eski nginx web yapılandırma dosyasını yedekleyin ve ssl kullanmak için düzenleyin.
root@Rocket-Chat:~# cp /etc/nginx/sites-available/default /etc/nginx/sites-available/default.back root@Rocket-Chat:~# nano /etc/nginx/sites-available/default
Adım # 04: Önceki tüm satırları bırakın ve tüm satırların altına ekleyin. Ve ssl config için alan adınızı değiştirin.
Upstream definition upstream backend { server 127.0.0.1:3000; } http to https redirection server { listen 80; server_name chat.kockerim.com; rewrite ^ https://$server_name$request_uri? permanent; } HTTPS Server server { listen 443; server_name chat.kockerim.com; error_log /var/log/nginx/rocket-chat.access.log; ssl on; ssl_certificate /etc/letsencrypt/live/chat.kockerim.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/chat.kockerim.com/privkey.pem; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # don’t use SSLv3 ref: POODLE location / { proxy_pass http://backend/; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forward-For $proxy_add_x_forwarded_for; proxy_set_header X-Forward-Proto http; proxy_set_header X-Nginx-Proxy true; proxy_redirect off; } }
Adım # 05: nginx web sunucusunu yeniden başlatın ve yenileme komutunu çalıştırın.
root@Rocket-Chat:~# nginx -t root@Rocket-Chat:~# service nginx restart root@Rocket-Chat:~# certbot-auto renew