Jak zainstalować certyfikat Cloudflare SSL

Opis instalacji certyfikatu Cloudflare SSL na web serwerze produkcyjnym opartym na Nginx.

  • na koncie Cloudflare wykorzystywanym w projekcie wchodzimy do zakładki SSL/TLS —> Origin Server.
  • generujemy certyfikat dla wskazanej domeny / subdomen
  • Cloudflare zwraca plik certyfikatu i klucz prywatny i musimy je skopiować na serwer (klucz prywatny jest powinien zostać umieszczony w lokacji /etc/ssl/private, np. /etc/ssl/private/ssl-cert-domain.com.key i certyfikat w /etc/ssl/certs/, np. /etc/ssl/certs/ssl-cert-domain.com.pem)
    zamień domain.com w nazwach plików na właściwą domenę!
  • w tej samej lokacji (/etc/ssl/certs) powinien się znaleźć też root certyfikat Cloudflare’a (w lokacji /etc/ssl/certs/cloudflare-origin-rsa.pem) —> należy go pobrać z https://support.cloudflare.com/hc/en-us/articles/115000479507 (znajdź Cloudflare Origin RSA PEM)
  • następnie trzeba wygenerować bundle certyfikatów (origin certyfikat dla domeny + root certyfikat) i będzie to plik /etc/ssl/certs/ssl-cert-domain.com-bundle.pem, wygenerowane przez poniższą komendę (sugeruję zalogować się jako root na serwerze):

    sudo cat /etc/ssl/certs/ssl-cert-domain.com.pem /etc/ssl/certs/cloudflare-origin-rsa.pem > /etc/ssl/certs/ssl-cert-domain.com-bundle.pem
  • w ustawieniach vhosta na Nginxie trzeba podać ścieżki do tych plików, np:

    ssl_certificate /etc/ssl/certs/ssl-cert-domain.com-bundle.pem;
    ssl_certificate_key /etc/ssl/private/ssl-cert-domain.com.key;

  • należy upewnić się, że Nginx nie zwraca błędów: sudo nginx -t 
  • wykonać restart nginx’a – sudo service nginx restart
  • w ustawieniach Cloudflare w sekcji SSL/TLS danej domeny, ustaw tryb Full (strict)
  • upewnić się, że strona działa 🙂