guillain n00b
Joined: 04 Sep 2006 Posts: 16 Location: Poland
|
Posted: Sun Mar 23, 2014 12:08 pm Post subject: [SOLVED] Podpisywanie certyfikatów SSL |
|
|
Witam,
Potrzebuję pomocy z podpisaniem certyfikatu. Nie potrafię zrozumieć dlaczego preglądarki ciągle twierdzą, że podpisane przeze mnie certyfikaty są niezaufane.
Prowadzę kilka stron intenetowych i postanowiłem wyrobić im certyfikaty SSL. Zdecydowałem sobie, że kupię tylko jeden certyfikat, zrobię go CA i podpiszę nim wszystkie moje strony wraz z wszystkimi ich subdomenami poprzez "wildcarda". Czyli innymi słowy chcę obsługiwać takie domeny:
Code: | main-domain.com
website-1.com
www.website-1.com
pop3.website-1.com
imap.website-1.com
smtp.website-1.com
ftp.website-1.com
sftp.website-1.com
website-2.com
website-3.com |
"Kupiłem" darmowy, 3-miesięczny, certyfikat SSL na domenę main-domain.com. Wygenerowałem main-domain.key i wysłałem im plik main-domain.csr, w odpowiedzi dostałem pliki: main-domain.crt oraz main-domain_ca_bundle.crt. Skonfigurowałem lighttpd podając ścieżki do plików, które dostałem mailem i certyfikat działa świetnie.
Code: | $SERVER["socket"] == ":443" {
ssl.engine = "enable"
ssl.pemfile = "/etc/ssl/lighttpd/main-domain.pem"
ssl.ca-file = "/etc/ssl/lighttpd/main-domain_ca_bundle.crt"
} |
main-domain.pem to plik, który zawiera klucz ptywatny i certyfikat: cat main-domain.crt main-domain.key > main-domain.pem
No i teraz zaczyna się problem, gdy próbuję wygenerować certyfikat dla moich stron. Robię to tak:
1. Generuję klucz prywatny: website-1.key
2. Generuję CSR'a: openssl req -new -key website-1.key -out website-1.csr -config website-1.cnf
3. CSR'a podpisuję głównym certyfikatem: openssl ca -policy policy_anything -in website-1.csr -out website-1.crt
Teraz konfiguracja lighttpd:
Code: | $SERVER["socket"] == ":443" {
ssl.engine = "enable"
ssl.pemfile = "/etc/ssl/lighttpd/website-1.pem"
ssl.ca-file = "/etc/ssl/lighttpd/website-1_ca_bundle.crt"
} |
website-1.pem to plik, który powstał tak: cat website-1.crt website-1.key > website-1.pem
website-1_ca_bundle.crt: cat main-domain_ca_bundle.crt main-domain.crt > website-1_ca_bundle.crt
Sprawdzajki ssl'i twierdzą, że brakuje certyfikatów pośrednich. Chciałbym się dowiedzieć, czy to co robię jest w ogóle możliwe, czy też może błądzę i rzecz, którą chcę osiągnąć jest po prostu niewykonalna?
EDIT:
Ok, chyba znalazłem przyczynę problemu. Ten darmowy certyfikat SSL ma oganiczoną liczbę pośrednich CA do 0. Gdy podpisywałem innym self-signed certyfikatem z zachowaniem właściwego organization name, to hierarchia certyfikatów jest zachowywana. Cóż, wygląda na to, że będzie trzeba wydać tych 15 zł na normalny certyfikat |
|