W Ubuntu wygląda na to, że najlepszym miejscem na klucz prywatny używany do podpisywania certyfikatu (do użytku przez nginx) jest /etc/ssl/private/
Ta odpowiedź dodaje, że certyfikat powinien wejść, /etc/ssl/certs/
ale wydaje się, że jest to niebezpieczne miejsce. Czy .crt
pliki muszą być bezpieczne, czy są uważane za publiczne?
ssl
ssl-certificate
openssl
Adam Nelson
źródło
źródło
.crt
na tablicy reklamowej Times Square.Odpowiedzi:
Plik .crt jest wysyłany do wszystkiego, co się łączy; to jest publiczne. (
chown root:root
ichmod 644
)Aby dodać do lokalizacji klucza prywatnego; upewnij się, że odpowiednio go zabezpieczysz i masz go tam. (
chown root:ssl-cert
ichmod 640
)źródło
ssl-cert
, używany, być może, między innymi, do tworzenia samopodpisanych certyfikatówNaprawdę nie ma znaczenia, gdzie je umieścisz, pod warunkiem, że odpowiednio zabezpieczysz swoje pliki kluczy prywatnych . Certyfikat publiczny publiczny; ochrona nie jest wymagana - uprawnienia serwera lub w inny sposób.
Aby rozwinąć odpowiedź, nie używam domyślnej lokalizacji
/etc/ssl
.Łatwiej jest mi przechowywać wszystkie moje w osobnym obszarze z powodu kopii zapasowych i innych powodów.
W przypadku Apache SSL trzymam mój w
/etc/apache2/ssl/private
podobnym „obszarze głównym”/etc/
.Przykładowa konfiguracja
Ten post jest skierowany do Ubuntu (Debian) + Apache, ale powinien działać na większości systemów - po
prostu zastosuj uprawnienia i zaktualizuj lokalizację / ścieżkę w danej konfiguracji (apache / nginx / etc).
Jeśli pliki kluczy SSL są odpowiednio chronione (katalog i pliki), wszystko będzie dobrze. Uwaga notatki!
Utwórz katalogi:
Uwaga:
chmod 710
obsługujessl-cert
grupę w systemie Ubuntu. (Patrz komentarze)Ustawienie uprawnienia na
700
on/etc/apache2/ssl/private
również będzie działać dobrze.Umieść pliki SSL:
Ustaw właściciela:
Uwaga:
Jeśli nie masz grupy ssl-cert , po prostu użyj „root: root” w linii powyżej lub pomiń drugą linię.
Ustaw uprawnienia:
Certyfikaty publiczne
Klucz prywatny
Uwaga:
Uprawnienie grupy jest ustawione na CZYTAJ (640) z powodu grupy Ubuntu ssl-cert. „600” też jest w porządku.
Włącz moduł Apache SSL
Edytuj dowolne pliki strony Apache i włącz
(patrz ostatni akapit) *
Uruchom ponownie usługę Apache2
lub
Gotowy. Przetestuj swoją nową witrynę SSL.
* Znów wykracza to poza pytanie, ale możesz skopiować domyślny plik konfiguracyjny strony Apache SSL (
sudo cp /etc/apache2/sites-available/default-ssl.conf /etc/apache2/sites-available/mysiteexample-ssl.conf
) jako dobry punkt wyjścia / przykład domyślnych dyrektyw / katalogów zwykle używanych w prostym („Ubuntu / Debian) pliku Apache / SSL” conf ” . Zwykle wskazuje na samopodpisany certyfikat SSL + klucz (snakeoil), pakiety CA, a także wspólne dyrektywy używane dla danej witryny SSL.Po skopiowaniu, po prostu edytuj nowy plik .conf i dodaj / usuń / zaktualizuj go w razie potrzeby z nowymi informacjami / ścieżkami powyżej, a następnie uruchom,
sudo a2ensite mysiteexample-ssl
aby go włączyć.źródło
<VirtualHost *:443>
sekcjasites-available/mysite.conf
powinna zawierać takie certyfikaty:SSLEngine on
SSLCertificateFile /etc/apache2/ssl/mysite.crt
SSLCertificateKeyFile /etc/apache2/ssl/private/mysite.key
Wszystkie odpowiedzi tutaj wydają się OK, ale chcę wspomnieć o jednej rzeczy, którą znalazłem, jest problemem ... Jeśli musisz połączyć swój certyfikat z półproduktami lub rootami, aby wymyślić plik łańcucha, nie wkładaj tego
/etc/ssl/certs
, ponieważ kiedyc_rehash
jest uruchamiany, może tworzyć skróty symboliczne do twoich certyfikatów ze względu na ich korzenie lub półprodukty.Później, jeśli twoje certyfikaty wygasły i je usunąłeś, i nie wiesz, aby je ponownie uruchomić
c_rehash
, być może zepsułeś dowiązania symboliczne skrótu w twoim/etc/ssl/certs
katalogu, a dziwne rzeczy zaczynają się dziać, gdy twoja lokalna maszyna próbuje się połączyć ze sobą przez SSL i nie może znaleźć korzeni do sprawdzenia. Na przykład z curl nagle zacząłem dostawać:Krótko po oczyszczeniu niektórych starych plików .crt i połączonych plików .pem, w których miałem
/etc/ssl/certs
.Przechowywanie przynajmniej łańcuchów w innym miejscu pozwala uniknąć tego problemu. Skończyło się
/etc/ssl/local_certs
na tym, że trzymałem moje certyfikaty i łańcuchy, aby nie zgubić się w bałaganie certyfikatów CA, które znajdziesz w/etc/ssl/certs
źródło
Nie ma tak naprawdę niebezpiecznego miejsca, jeśli uprawnienia dla poszczególnych plików / katalogów są ustawione na coś podobnego,
chown root :0 private.key
achmod 600 private.key
więc tylko root może je odczytać. CSR i pliki certyfikatów są mniej wrażliwe, jak mówisz.Przy tych uprawnieniach wymienione ścieżki i / usr / local / ssl powinny być w porządku.
źródło
Lokalizacje są poprawne:
/etc/ssl/certs/
do.crt
pliku/etc/ssl/private
do.key
plikuWłaściciel musi być
root:root
dla obu (użyj,sudo chmod root:root <file>
aby zmienić w razie potrzeby).Uprawnienia :
644
do.crt
pliku600
do.key
plikuTo zadziała dla
nginx
.źródło