mrowka 0 Zgłoś post Napisano Luty 5, 2018 Cześć, mam domenę: "example.com" dodałem certyfikat SSL, chcę by strona była dostępna wyłącznie z adresu: https://example.com Czyli po wejściu np. na: http://www.example.com ma być przekierowanie na wcześniej wymienioną. Wygląda to tak: https://example.com - SSL działa, poprawna strona http://example.com -> "https://example.com" - przekierowanie OK, SSL OK, strona OK http://www.example.com -> https://example.com - przekierowanie OK, SSL OK, strona OK https://www.example.com -> https://example.com - SSL nie działa, pokazuje błąd certyfikatu, URL zostaje na https://www.example.com, zła strona, wyświetla: "403 Forbidden / nginx/1.10.3 (Ubuntu)" zamiast tego co w "root /var/www/example.com/html;" Plik vhost NGINX wygląda tak: server { listen 80; listen [::]:80; root /var/www/example.com/html; index index.php index.html index.htm server_name example.com; location / { try_files $uri $uri/ =404; } location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php7.0-fpm.sock; } location ~ /\.ht { deny all; } listen 443 ssl; # managed by Certbot ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; # managed by Certbot ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; # managed by Certbot include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot if ($scheme != "https") { return 301 https://$host$request_uri; } # managed by Certbot } server { listen 80; listen [::]:80; server_name www.example.com; return 301 https://example.com$request_uri; } Co powoduje błąd? Co trzeba poprawić?Czy może powinienem wygenerować SSL też dla www.* / zostawić możliwość używania 2 wersji adresu? Pozdrawiam. Udostępnij ten post Link to postu Udostępnij na innych stronach
GieBe 1 Zgłoś post Napisano Luty 5, 2018 Wygeneruj sobie drugi SSL dla www.example.com i zrób przekierowanie na https://example.com. 1 Udostępnij ten post Link to postu Udostępnij na innych stronach
mrowka 0 Zgłoś post Napisano Luty 5, 2018 Wygeneruj sobie drugi SSL dla www.example.com i zrób przekierowanie na https://example.com. A to: server_name www.example.com; return 301 https://example.com$request_uri; nie powinno właśnie działać w ten sposób(przekierowanie) i pokazywać po przekierowaniu że SSL poprawny bo dla example.com taki właśnie jest? Udostępnij ten post Link to postu Udostępnij na innych stronach
Jishnu 4 Zgłoś post Napisano Luty 5, 2018 (edytowany) komenda: openssl x509 -noout -text -in certyfikat.crt | grep DNS: powinna zwrócić cośtakiego: DNS:www.example.com, DNS:example.com w przeciwnym wypadku (jeśli będzie brakowało DNS:www.example.com) będzie błąd certyfikatu. W pierwszej kolejności następuje połączenie SSL/TLS a dopiero później przekierowania więc jeśli wpiszemy www.example.com a certyfikat mamy wygenerowany tylko na example.com to mamy błąd. EDIT: Dodatkowo dla vhosta www.example.com musisz mieć dodany certyfikat w konfiguracji - tak jak dla example.com Najprościej będzie zrobić jak zasugerował @GieBe Edytowano Luty 5, 2018 przez Jishnu (zobacz historię edycji) 1 Udostępnij ten post Link to postu Udostępnij na innych stronach
mrowka 0 Zgłoś post Napisano Luty 5, 2018 Wygenerowałem certyfikaty dla wszystkich używanych domen: sudo certbot --authenticator standalone --installer nginx --pre-hook "service nginx stop" --post-hook "service nginx start" --cert-name eka.ovh -d eka.ovh -d pma.eka.ovh -d jenkins.eka.ovh -d www.eka.ovh -d www.pma.eka.ovh -d www.jenkins.eka.ovh Błędów związanych z certyfikatem nie ma, natomiast jest problem z przekierowaniem np.: https://www.jenkins.eka.ovh -> https://jenkins.eka.ovh Po wpisaniu adresu z www pokazuje webroot domeny eka.ovh. Tak samo nie działa przekierowanie: https://www.eka.ovh -> https://eka.ovh WWW jest cały czas w adresie URL.Niżej konfiguracja vhosta jenkinsa: server { listen 80; listen [::]:80; server_name jenkins.eka.ovh; access_log /var/log/nginx/jenkins.access.log; error_log /var/log/nginx/jenkins.error.log; location / { include /etc/nginx/proxy_params; proxy_pass http://localhost:8090; proxy_read_timeout 90s; } location ~ /\.ht { deny all; } listen 443 ssl; # managed by Certbot ssl_certificate /etc/letsencrypt/live/eka.ovh/fullchain.pem; # managed by Certbot ssl_certificate_key /etc/letsencrypt/live/eka.ovh/privkey.pem; # managed by Certbot include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot if ($scheme != "https") { return 301 https://$host$request_uri; } # managed by Certbot } server { listen 80; listen [::]:80; server_name www.jenkins.eka.ovh; return 301 https://jenkins.eka.ovh$request_uri; } Dzięki za dotychczasową pomoc Udostępnij ten post Link to postu Udostępnij na innych stronach
Jishnu 4 Zgłoś post Napisano Luty 5, 2018 Wygląda na to, że brakuje wpisów ssl dla vhostów z www. Dla domeny ssl dla której nie ma wpisu wyświetlana jest pierwsza dostępna a tam nie ma ustawionego odpowiedniego przekierowania Jest: server { listen 80; listen [::]:80; server_name www.jenkins.eka.ovh; return 301 https://jenkins.eka.ovh$request_uri; } powinno być: server { listen 80; listen [::]:80; listen 443 ssl; # managed by Certbot ssl_certificate /etc/letsencrypt/live/eka.ovh/fullchain.pem; # managed by Certbot ssl_certificate_key /etc/letsencrypt/live/eka.ovh/privkey.pem; # managed by Certbot include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot server_name www.jenkins.eka.ovh; return 301 https://jenkins.eka.ovh$request_uri; } i analogicznie dla drugiej domeny.. 2 Udostępnij ten post Link to postu Udostępnij na innych stronach
eska97 0 Zgłoś post Napisano Luty 6, 2018 polecam https://gist.github.com/cecilemuller/a26737699a7e70a7093d4dc115915de8 Udostępnij ten post Link to postu Udostępnij na innych stronach
mrowka 0 Zgłoś post Napisano Luty 6, 2018 @Jishnu dzięki, dodałem wpisy od SSL i rozwiązało to problem. Dzięki za pomoc! Udostępnij ten post Link to postu Udostępnij na innych stronach