# [SOLVED] Podpisywanie certyfikatów SSL

## guillain

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:

```
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.

```
$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:

```
$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  :Sad: 

----------

