Встановлення SSL протокол шифрування

В сучасному цифровому світі, де передача конфіденційної інформації через мережу стала необхідністю, важливо вживати заходи для забезпечення безпеки даних. Один із ключових інструментів для цього є SSL (Secure Sockets Layer) протокол шифрування.
Розгянемо процес встановлення SSL від Lens Encript.


Навіщо потрібен SSL?

SSL використовується для шифрування даних, які передаються між користувачем та сервером. Це забезпечує захист від перехоплення та недозволеного доступу до конфіденційної інформації, такої як особисті дані, логіни, паролі та банківські реквізити.

Як працює SSL

SSL використовує симетричне та асиметричне шифрування для захисту даних. Клієнт і сервер взаємодіють у процесі "handshake", де вони обмінюються ключами та підтверджують свою ідентичність.

Встановлення SSL cертифікату

Для використання SSL, необхідно отримати цифровий сертифікат від надійного постачальника, який підтвердить вашу ідентичність. Сертифікат встановлюється на сервері та включає публічний ключ, який використовується для шифрування даних.

Розглянемо безкоштованого сертифікату від Lens Encript за допомогою  Cerbot для Web-server Nginx
sudo snap install --classic certbot
sudo certbot certonly --nginx

Після встановлення потрібно вказати для якої доменної адреси потрібно встановити SSL сертифікат. По замовчуванню сертифікати знаходяться в каталозі:

/etc/letsencrypt/live/example.com/fullchan.pem

По замовчуванню ключ знаходиться в каталозі:

/etc/letsencrypt/live/example.com/privekey.pem

certbot certificates

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
Found the following certs: 
    Certificate Name: example.com 
    Serial Number: **************************** 
    Key Type: ECDSA 
    Domains: example.com 
    Expiry Date: 2024-04-19 10:36:03+00:00 (VALID: 82 days) 
    Certificate Path: /etc/letsencrypt/live/example/fullchain.pem 
    Private Key Path: /etc/letsencrypt/live/example/privkey.pem 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -


виведе інформацію про статус сертифіката та на який період він буде дійсний, як правило це на пів року, після чого потрібно його оновляти, щоб незабути про оновлення даного сертифікату можна запустити автооновлення командою:

sudo certbot renew --dry-run

sudo потрібно для того щоб виконати від адміністратора


Налаштування Nginx конфігурації

Під час встановлення сертифікату можна вибрати автоматичне налаштування Nginx конфіугарції, та вручну самостійно.
Рекомендуюу звісно самому налаштовувати
Потрібно відредагувати файл або створити новий з новими налаштуваннями який знаходиться за шляхом: /etc/nginx/sites-enabled/default

server {
	listen 80 default_server;
	listen [::]:80 default_server;
	server_name www.example.com;

	# SSL configuration
	#
	# listen 443 ssl default_server;
	# listen [::]:443 ssl default_server;
	#
	# Note: You should disable gzip for SSL traffic.
	# See: https://bugs.debian.org/773332
	#
	# Read up on ssl_ciphers to ensure a secure configuration.
	# See: https://bugs.debian.org/765782
	#
	# Self signed certs generated by the ssl-cert package
	# Don't use them in a production server!
	#
	# include snippets/snakeoil.conf;
	root /var/www/html;

	# Add index.php to the list if you are using PHP
	index index.html index.htm index.nginx-debian.html;

	server_name _;
    
	location / {
		# First attempt to serve request as file, then
		# as directory, then fall back to displaying a 404.
		try_files $uri $uri/ =404;
	}


	# deny access to .htaccess files, if Apache's document root
	# concurs with nginx's one
	#
	#location ~ /\.ht {
	#	deny all;
	#}
	listen [::]:443 ssl ipv6only=on; # managed by Certbot                      
	listen 443 ssl; # managed by Certbot                                       
	ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
	ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
	include /etc/letsencrypt/options-ssl-nginx.conf;
	ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;

}
 

Після внесення змін в nginx конфігурацію потірбно перевірити чи немає помилок в конфігруації

nginx -s reload

Та наступним кроком перезапустити службу NGINX

systemctl restart nginx 

тепер ваш веб сторінка буде працювати по адресі https://example.com