Помилка 525 означає, що Cloudflare не зміг встановити безпечне SSL-з’єднання з твоїм сервером. Проблема на боці твого сервера, а не на боці Cloudflare.
Причини.
- SSL-сертифікат на сервері протермінований, відсутній або некоректний.
- Сервер слухає тільки HTTP (без HTTPS).
- Неправильна конфігурація SSL на сервері.
- Надто строгі налаштування SSL/TLS (наприклад, відсутність потрібних протоколів).
Як виправити?
1. Перевірити сертифікат на сервері
На сервері, де працює твій Rails-застосунок, виконай:
openssl s_client -connect yourdomain.com:443
Якщо бачиш помилки типу certificate expired
або unable to verify
, тоді проблема саме в сертифікаті.
Рішення:
- Онови сертифікат через Let’s Encrypt (наприклад, за допомогою Certbot).
- Або перевір вручну шлях до сертифікатів у Nginx/Apache.
2. Перевірити налаштування Nginx/Apache
Якщо у тебе перед Rails стоїть Nginx (що майже завжди так):
Приклад конfigа /etc/nginx/sites-enabled/yourapp
:
server {
listen 443 ssl;
server_name yourdomain.com;
ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem;
# Інші налаштування проксі для Rails Puma
location / {
proxy_pass http://localhost:3000;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-For $remote_addr;
}
}
Перевір правильність шляхів до сертифікатів і права доступу до них.
3. Перевірити налаштування Cloudflare
У Cloudflare в налаштуваннях SSL/TLS переконайся, що:
- Встановлений режим “Full” або “Full (strict)”.
- Flexible режим не підходить для Rails-застосунків (він викликає 525).
“Full (strict)” — найбезпечніший варіант, якщо сертифікат дійсний.
4. Перевірити налаштування Puma/Rails
Якщо Rails сам слухає HTTPS (рідко, але буває), тоді у файлі puma.rb
потрібно додати:
ssl_bind '0.0.0.0', '3000', {
key: '/path/to/private-key.pem',
cert: '/path/to/certificate.pem'
}
Але зазвичай у продакшені Rails працює лише через HTTP на localhost, а SSL обробляє Nginx.
Короткий че-кліст
Є дійсний SSL-сертифікат на сервері.
Nginx/Apache правильно налаштований для роботи з SSL.
У Cloudflare встановлений режим SSL “Full” або “Full (strict)”.
Сервер дійсно приймає HTTPS-з’єднання на порту 443.