Generowanie klucza ssl dla strony na localhoście.

0

Wiem, że pytanie jest dość banalne. Mam w katalogu htdocs, katalog PIZZA_PIS wraz ze stronę w php. Chciałabym wygenerować klucz dla tej strony.Co powinnam wpisać tutaj jako xxx ? genrsa -des3 -out xxx.key 2048.Czy powinno być: genrsa -des3 -out PIZZA_PIS.key 2048? Czy tą nazwę PIZZA_PIS, muszę gdzieś jeszcze ustawiać w Apache? Odnoszę się do tej strony przez localhost\PIZZA_PIS.
Odnośnie Apache to oczywiście moduł SSL jest włączony i listen ustawiony na 443. Chodzi mi bardziej jak kurcze Apache ma wiedzieć o jaką stronę mi chodzi? Czy nie powinnam coś gdzieś ustawić w tym zakresie, albo w miejsce xxx wpisać localhost\PIZZA_PIS ???

1

Klucz może nazywać się dowolnie, w apache2 musisz ustawić odpowiedniego virtualhosta (zwykle zmiana w /etc/apache2/sites-available + restart serwera apache2 (sudo service apache2 restart)) dla ssl:

<IfModule mod_ssl.c>
<VirtualHost _default_:443>
	ServerAdmin [email protected]
	ServerName website.pl:443

	DocumentRoot /var/www/html/
	<Directory />
		Options FollowSymLinks
		AllowOverride None
	</Directory>
	<Directory /var/www/html>
		Options FollowSymLinks MultiViews
		AllowOverride All
		Order allow,deny
		allow from all
	</Directory>

	ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
	<Directory "/usr/lib/cgi-bin">
		AllowOverride None
		Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
		Order allow,deny
		Allow from all
	</Directory>

	ErrorLog ${APACHE_LOG_DIR}/error.log

	LogLevel warn

	CustomLog ${APACHE_LOG_DIR}/ssl_access.log combined

	Alias /doc/ "/usr/share/doc/"
	<Directory "/usr/share/doc/">
		Options Indexes MultiViews FollowSymLinks
		AllowOverride None
		Order deny,allow
		Deny from all
		Allow from 127.0.0.0/255.0.0.0 ::1/128
	</Directory>

	SSLEngine on
	SSLProtocol all -SSLv2
	SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM
	SSLCertificateFile /etc/apache2/ssl/website.pl/ssl.crt
	SSLCertificateKeyFile /etc/apache2/ssl/website.pl/ssl.key
	SSLCertificateChainFile /etc/apache2/ssl/website.pl/sub.class2.server.ca.pem

	<FilesMatch "\.(cgi|shtml|phtml|php)$">
	        SSLOptions +StdEnvVars
	</FilesMatch>
	<Directory /usr/lib/cgi-bin>
	        SSLOptions +StdEnvVars
	</Directory>

	BrowserMatch "MSIE [2-6]" \
	        nokeepalive ssl-unclean-shutdown \
	        downgrade-1.0 force-response-1.0
	BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown

</VirtualHost>
</IfModule>

Zwróć uwagę na wszystkie website.pl.

Dodatkowo, jeżeli chcesz wymusić https, musisz przekierować użytkowników z http:

<VirtualHost *:80>
        ServerAdmin [email protected]
        ServerName website.pl:80

        RewriteEngine on
        RewriteCond %{SERVER_PORT} !^443$
        RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [NC,R=301,L]

        DocumentRoot /var/www/html/website.pl
        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>
        <Directory /var/www/html/>
                Options FollowSymLinks MultiViews
                AllowOverride All
                Order allow,deny
                allow from all
        </Directory>

        ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
        <Directory "/usr/lib/cgi-bin">
                AllowOverride None
                Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
                Order allow,deny
                Allow from all
        </Directory>

        ErrorLog ${APACHE_LOG_DIR}/error.log

        LogLevel warn

        CustomLog ${APACHE_LOG_DIR}/access.log combined

        Alias /doc/ "/usr/share/doc/"
        <Directory "/usr/share/doc/">
                Options Indexes MultiViews FollowSymLinks
                AllowOverride None
                Order deny,allow
                Deny from all
                Allow from 127.0.0.0/255.0.0.0 ::1/128
        </Directory>

</VirtualHost>
0

Sama wygenerowałam Self-Signed Certificate czy w takim wypadku muszę i jeśli tak to jak, wypełnić SSLCertificateChainFile?

Niestety pracuję na Windows. Pliki crt i key są w katalogu SSL który utowrzyłam w katalogu z Apachem. Jak powinnam dodać ścieżkę ?
SSLCertificateFile C:/Program Files/Apache Software Foundation/Apache2.2/SSL/samotny_klucz.crt SSLCertificateKeyFile C:/Program Files/Apache Software Foundation/Apache2.2/SSL/samotny_klucz.key

SSLCertificateFile Apache Software Foundation/Apache2.2/SSL/samotny_klucz.crt SSLCertificateKeyFile /Apache Software Foundation/Apache2.2/SSL/samotny_klucz.key

Jeszcze inaczej? :P

1

SSLCertificateChainFile nie jest konieczne. Może pomóc w przypadku starszych wersji Apache. Od wersji 2.4.8 wycofywane z użycia.

Co do kluczy, ścieżki powinny być ubrane w cudzysłów, zwłaszcza, że nazwy zawierają spacje.

SSLCertificateFile  "C:/Program Files/Apache Software Foundation/Apache2.2/SSL/samotny_klucz.crt"
SSLCertificateKeyFile  "C:/Program Files/Apache Software Foundation/Apache2.2/SSL/samotny_klucz.key"
0

Z tego co się zorientowałam, na windowsie virtual host dla portu 443 czyli SSL powinien być w pliku httpd-ssl.conf Ustawiłam tam ascetyczną wersję względem Twojej o to ona:

 <VirtualHost _default_:443>
	 ServerAdmin [email protected]
	 DocumentRoot "C:/Program Files (x86)/Apache Software Foundation/Apache2.2/htdocs/PIZZA_PIS"
	 ServerName localhost/PIZZA_PIS:443
	 ServerAlias localhost/PIZZA_PIS:443
	 ErrorLog "C:/Program Files (x86)/Apache Software Foundation/Apache2.2/logs/error.log"
	 TransferLog "C:/Program Files (x86)/Apache Software Foundation/Apache2.2/logs/access.log"
	 SSLEngine on
	 SSLCertificateFile "C:/Program Files (x86)/Apache Software Foundation/Apache2.2/SSL/samotny_klucz.crt"
	 SSLCertificateKeyFile "C:/Program Files (x86)/Apache Software Foundation/Apache2.2/SSL/samotny_klucz.key"
 </VirtualHost>

//Nie dałam ifów bo jeśli to jest plik dla 443 to zakładam że w jakiś sposób się uruchamia gdy protokół jest włączony i jest na odpowiednim porcie strona.

localhost/PIZZ_PIS jak wpisze mam stronę którą bym chciała zabezpieczyć. Jak wpisze : localhost/PIZZ_PIS:443 To mam Forbiden "You don't have permission to access /PIZZA_PIS:443 on this server."

0

Czy w httpd.conf masz linijkę (nie jako komentarz) LoadModule ssl_module modules/mod_ssl.so?

Czy mogłabyś dla porównania wkleić virtual host na PIZZA_PIS:80?

Czy pamiętałaś o a2ensite? Czy nie zwraca błędów / ostrzeżeń?

0

Tak dopilnowałam, aby ładował się moduł. Mogę sprawdzić czy się ładuję, ale problem raczej nie jest po tej stronie.(Fizyczne sprawdzenie programem napisanym, bo jest oczywiście odkomentowane.

Nie spotkałam się aby w windowsie używać a2ensite, to jest raczej na linux, robiłam na linuxie virtualhosty i normalnie chodziły.

Nie istnieje virtualhost dla PIZZA_PIS, stąd chciałam się odwoływać adresem który wpisuję w przeglądarkę: localhost/PIZZA_PIS

Podjełam próbę utworzenia virtual hosta dla PIZZA_PIS o nazwie pizza-pis.pl.

0

Czy masz jednocześnie odpalonego IIS? Domyślnie nasłuchuje on na porcie 443 i odrzuca wszystkie połączenia. Czy w firewallu masz odblokowany ten port?

0
merlinnot napisał(a):

Czy masz jednocześnie odpalonego IIS?

Ta tragedia mnie jeszcze czeka...

Nie mam nawet zainstalowanego :P póki co.

Teraz wyłączyłam firewalla (w ogóle) i jak wpiszę localhost/PIZZA_PISS:443 To mam to samo co miałam Foerbidden

EDIT: Jak wpiszę https://localhost/PIZZA_PIS/ To mam taki komunikat :

Błąd połączenia SSL

Ukryj szczegóły
Nie można nawiązać bezpiecznego połączenia z serwerem. To może być problem z serwerem lub wymagany jest certyfikat uwierzytelniania klienta, którego nie masz.
Kod błędu: ERR_SSL_PROTOCOL_ERROR

Na chromie

A na operze:

Błąd połączenia SSL

Nie można nawiązać bezpiecznego połączenia z serwerem. Może to być problem z serwerem lub serwer wymaga klienckiego certyfikatu uwierzytelniającego, którego nie posiadasz.

Niestety jeszcze nie znalazłam jak to rozwiązać, odpowiedzi które znajduję są mało pomocne.

Ustawiłam htaccess w katalogu PIZZA_PIS aby wymuszać https...

1 użytkowników online, w tym zalogowanych: 0, gości: 1