Zaufany certyfikat SSL dla połączeń https w tomato
|
shibby |
Dodano 04-11-2011 11:54
|
SysOp
Posty: 17116
Dołączył: 15/01/2009 20:30
|
1. Wstęp
Tomato posiada wbudowany generator certyfikatów SSL na potrzeby połączeń HTTPS. Nie mniej jednak tak wygenerowany certyfikat jest wykrywany przez przeglądarki jako niebezpieczny (nie jest podpisany przez centrum autoryzujące, nie jest zaufany).
Istnieje jednak sposób by użyć zakupionego zaufanego certyfikatu.
2. Wymagania
Potrzebujemy domenę. Najlepiej wykupiona domena, gdyż będziemy musieli zweryfikować prawo do jej posiadania (adres email, wpis cname w dns). Szczerze powiem, nie wiem jak sprawdzi się tu dynamiczna domena. Często jednak można trafić na promocję, w której możemy zakupić domenę na rok za grosze lub nawet za darmo. Na potrzeby poradnika przyjmijmy że będzie to domena router.openlinksys.info
3. Wygenerowanie pliku klucza (key) i żądania (csr)
W konsoli wydajemy komendę:
Cytat cd /tmp
openssl req -nodes -newkey rsa:2048 -keyout router.openlinksys.info.key -out router.openlinksys.info.csr
Odpowiadamy na pytania. Najważniejsze by w polu Common Name podać nazwę swojej domeny.
Oto wynik mojego wykonania komendy (na czerwono zaznaczyłem udzielone odpowiedzi):
Cytat [root@router /tmp]$ openssl req -nodes -newkey rsa:2048 -keyout router.openlinksys.info.key -out router.openlinksys.info.csr
Generating a 2048 bit RSA private key
.............................................................................................................................................+++
..........+++
writing new private key to 'router.openlinksys.info.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:PL
State or Province Name (full name) [Some-State]:Poland
Locality Name (eg, city) []:Wroclaw
Organization Name (eg, company) [Internet Widgits Pty Ltd]:router
Organizational Unit Name (eg, section) []:IT
Common Name (eg, YOUR name) []:router.openlinksys.info
Email Address []:
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
[root@router /tmp]$ ls router*
router.openlinksys.info.csr router.openlinksys.info.key
4. Uzyskanie certyfikatu
Na stronie comodo.com można zamówić w pełni darmowy, zaufany certyfikat ważny 90dni. Taki certyfikat w zupełności wystarczy dla naszych potrzeb. Oczywiście można zakupić sobie płatną wersję na rok, dwa itd...
Nie będę opisywał tu całego procesu pozyskania certyfikatu. W skrócie sprowadza się on do:
1) wypełnienia formularza, w którym to wklejamy zawartość pliku csr wygenerowanego wcześniej
2) walidacja posiadania zgłoszonej domeny poprzez adres email (konieczność posiadania maila admin@domena, administrator@domena, webmaster@domena etc) lub poprzez wpis CNAME w DNSie
3) potwierdzenie zamówienia certyfikatu - na maila przyjdzie nam wiadomość z kodem potwierdzającym
4) ściągnięcie paczki z certyfikatem
5) wysłanie plików certyfikatu na router (np przez ftp)
5. Ustawienie usługi httpd
W zakładce Administration -> Admin Access ustawiamy wszystko tak jak na załączonym obrazku
Oczywiście port HTTP możemy ustawić inny. Możemy również zamiast "HTTP & HTTPS" ustawić samo "HTTPS"
6. Test certyfikatu
Przyjmijmy, że w katalogu /tmp posiadamy wszystkie interesujące nas pliki czyli router.openlinksys.info.crt (certyfikat) oraz router.openlinksys.info.key (klucz prywatny). Wydajemy kolejno komendy:
Cytat cat /tmp/router.openlinksys.info.crt > /etc/cert.pem
cat /tmp/router.openlinksys.info.key > /etc/key.pem
service httpd restart
i sprawdzamy czy certyfikat działa, wchodząc na stronę routera https://domena/
(z zewnątrz, gdyż wewnątrz może nie zadziałać, dlatego wewnątrz sieci pozostaliwiśmy protokół http).
Jeżeli naszym oczom ukarze się gui tomato z białym paskiem adresu zamiast czerwonego możemy sobie pogratulować.
Jako potwierdzenie klikając na kłódkę zobaczymy (przykład dla mojej domeny):
7. Trwały zapis certyfikatu do nvram
Wydajemy w konsoli kolejno komendy:
Cytat tar -C / -czf /tmp/cert.tgz etc/cert.pem etc/key.pem
nvram setfb64 https_crt_file /tmp/cert.tgz
nvram commit
Pamiętaj!! Jeżeli kiedykolwiek odznaczysz "Save in NVRAM" lub zaznaczysz "Regenerate", stracisz zapisany w nvram certyfikat i będziesz musiał powtórzyć kroki 6 i 7.
Pamiętaj!! Zapisz sobie gdzieś pliki certyfikatu i klucza tak by ich nie stracić.
Powodzenia
Edytowany przez shibby dnia 04-11-2011 12:05
Router: Unifi Cloud Gateway Max
Switch: Unifi USW-Lite-16-PoE
Switch: Unifi USW-Flex-Mini - szt. 2
Wi-Fi: Unifi U6-Lite - szt. 2
Proxmox VE: i5-13400T, 64GB RAM, 2x 512GB NVMe, 3x 2TB SSD
VM #1: Synology SA6400
VM #2: Debian, WWW
VM #3: Home Assistant OS
|
|
|
|
LDevil |
Dodano 04-11-2011 19:31
|
User
Posty: 76
Dołączył: 04/08/2011 10:44
|
Jeżeli będziemy się łączyć z routerem z niewielkiej liczby komputerów to warto rozważyc stworzenie własnego CA i tam podpisywać certyfikaty.
Tomato v2020.3 MIPSR2 K26 USB VPN
|
|
|
|
SlyT |
Dodano 04-11-2011 20:05
|
Power User
Posty: 366
Dołączył: 15/09/2006 23:44
|
Trzeba tylko pamietac zeby dodac certyfikat wlasnego CA do odpowiedniego kontenera na kazdym z hostow z ktorymi sie bedziemy laczyc.
Linksys E2000 Tomato 1.28 shibby's compilation
Linksys EA6700 FreshTomato
|
|
|
|
shibby |
Dodano 04-11-2011 21:42
|
SysOp
Posty: 17116
Dołączył: 15/01/2009 20:30
|
Tyle że certyfikat podpisany własnym CA nadal jest niezaufany, tak więc to nam nic nie zmieni.
Router: Unifi Cloud Gateway Max
Switch: Unifi USW-Lite-16-PoE
Switch: Unifi USW-Flex-Mini - szt. 2
Wi-Fi: Unifi U6-Lite - szt. 2
Proxmox VE: i5-13400T, 64GB RAM, 2x 512GB NVMe, 3x 2TB SSD
VM #1: Synology SA6400
VM #2: Debian, WWW
VM #3: Home Assistant OS
|
|
|
|
LDevil |
Dodano 05-11-2011 09:20
|
User
Posty: 76
Dołączył: 04/08/2011 10:44
|
Ale jak masz własne CA, to możesz dodać jego certyfikat do zaufanych wystawców i od tej chwili wszystkie certyfikaty wystawione przez to CA będą zaufane.
Numer ten niestety trzeba powtórzyć na każdym komputerze z którego będziemy łączyć się do panelu routera, ale z drugiej strony robi się to tylko raz.
Zaletą tej metody jest to, że wystawiamy sobie certyfikat na 10 lat i zapominamy o całej zabawie.
Tomato v2020.3 MIPSR2 K26 USB VPN
|
|
|
|
shibby |
Dodano 06-11-2011 11:31
|
SysOp
Posty: 17116
Dołączył: 15/01/2009 20:30
|
na kazdym komputerze, komorce, na kazdej przegladarce.
to nie do konca jest wyjscie. Jednak w pewni autorytatywny i zaufany certyfikat to pewniak.
Router: Unifi Cloud Gateway Max
Switch: Unifi USW-Lite-16-PoE
Switch: Unifi USW-Flex-Mini - szt. 2
Wi-Fi: Unifi U6-Lite - szt. 2
Proxmox VE: i5-13400T, 64GB RAM, 2x 512GB NVMe, 3x 2TB SSD
VM #1: Synology SA6400
VM #2: Debian, WWW
VM #3: Home Assistant OS
|
|
|
|
Nimloth |
Dodano 19-11-2011 19:33
|
User
Posty: 19
Dołączył: 19/07/2011 08:08
|
Polecam http://cert.startcom.org/
Darmowy certyfikat SSL na rok (mozna odnawiac) ... i root jest w kazdej przegladarce |
|
|
|
shibby |
Dodano 05-12-2011 09:53
|
SysOp
Posty: 17116
Dołączył: 15/01/2009 20:30
|
super info. Generowałeś już może tam certyfikat? Ja narazie mam ten darmowy z comodo wiec poki co nie bede tworzyl nowego ale w luty jak ten z comodo sie skonczy to napewno skorzystam.
Router: Unifi Cloud Gateway Max
Switch: Unifi USW-Lite-16-PoE
Switch: Unifi USW-Flex-Mini - szt. 2
Wi-Fi: Unifi U6-Lite - szt. 2
Proxmox VE: i5-13400T, 64GB RAM, 2x 512GB NVMe, 3x 2TB SSD
VM #1: Synology SA6400
VM #2: Debian, WWW
VM #3: Home Assistant OS
|
|
|
|
przemasisko |
Dodano 11-01-2012 13:24
|
Super User
Posty: 550
Dołączył: 17/05/2010 13:56
|
Właśnie przed chwilą wygenerowałem certyfikat za pomocą serwisu StartSSL i zastosowałem w Tomato wg w/w poradnika. Wszystko śmiga. Certyfikat ważny na rok.
Testowane na przeglądarkach, w których była "zielona kłódka":
- IE 8.0
- Firefox 9.0.1
- Chrome 16 |
|
|
|
shibby |
Dodano 11-01-2012 15:39
|
SysOp
Posty: 17116
Dołączył: 15/01/2009 20:30
|
moj z comodo wazny jest jeszcze miesiac a pozniej tez wyceneruje sobie ten co ty
Router: Unifi Cloud Gateway Max
Switch: Unifi USW-Lite-16-PoE
Switch: Unifi USW-Flex-Mini - szt. 2
Wi-Fi: Unifi U6-Lite - szt. 2
Proxmox VE: i5-13400T, 64GB RAM, 2x 512GB NVMe, 3x 2TB SSD
VM #1: Synology SA6400
VM #2: Debian, WWW
VM #3: Home Assistant OS
|
|
|
|
Nimloth |
Dodano 13-01-2012 23:14
|
User
Posty: 19
Dołączył: 19/07/2011 08:08
|
Tak korzystam z niego od ponad 2 lat ... bez problemu dziala |
|
|
|
pluttek |
Dodano 21-01-2012 13:10
|
User
Posty: 10
Dołączył: 29/10/2010 12:31
|
Cytat shibby napisał:
2. Wymagania
Potrzebujemy domenę. Najlepiej wykupiona domena, gdyż będziemy musieli zweryfikować prawo do jej posiadania (adres email, wpis cname w dns). Szczerze powiem, nie wiem jak sprawdzi się tu dynamiczna domena. (...)
Mam dynamiczną domenę na no-ip.com : pluttek.###.### i dla niej próbuję generować klucz.
Cytat
3. Wygenerowanie pliku klucza (key) i żądania (csr)
W konsoli wydajemy komendę:
Cytat cd /tmp
openssl req -nodes -newkey rsa:2048 -keyout router.openlinksys.info.key -out router.openlinksys.info.csr
Odpowiadamy na pytania. Najważniejsze by w polu Common Name podać nazwę swojej domeny.
w konsoli (poprzez telnet putty) wpisuję:
Tomato v1.28.0000 MIPSR2-083V-PL K26 USB AIO
root@pluttek:/tmp# openssl req -nodes -newkey rsa:2048 -keyout pluttek.###.###.key -out pluttek.###.###.csr
i niestety nic się mnie o nic nie pyta tylko "smaruje" to:
Generating a 2048 bit RSA private key
.......................................................................................+++
................+++
writing new private key to 'pluttek.###.###.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
. []:US
. []:.
. []:.
. []:.
. []:.
Please enter the following 'extra' attributes
to be sent with your certificate request
. []:
. []:
root@pluttek:/tmp#
co robię nie tak?
(pewne znaki w nazwie domeny zastąpiłem przez ### - żeby się za dużo nie wydało ;)
RT-N16 @ tomato-K26USB-1.28.RT5x-MIPSR2-083V-PL-AIO + Optware
|
|
|
|
ghoes |
Dodano 21-01-2012 15:29
|
User
Posty: 106
Dołączył: 06/07/2011 19:42
|
Niech ktoś pomoże, bo i ja na tym poległem...
|
|
|
|
przemasisko |
Dodano 21-01-2012 21:31
|
Super User
Posty: 550
Dołączył: 17/05/2010 13:56
|
Najlepiej na innym linxuie (ubuntu) wygenerować sobie certyfikat.
Od biedy można również na Windowsie.
A jeśli koniecznie na routerze to pasuje zainstalować openssl z optware i edytować pliczek openssl.cnf w którym to są te zmienne o które się "pluje". |
|
|
|
ghoes |
Dodano 22-01-2012 11:56
|
User
Posty: 106
Dołączył: 06/07/2011 19:42
|
chodzi o to, że certyfikat się generuje, lecz linijki do uzupełnienia przechodzą puste (nie można wpisać nic, bo to przechodzi z automatu do końca, tak jak to kolega Pluttek wkleił z konsoli
|
|
|
|
przemasisko |
Dodano 22-01-2012 12:59
|
Super User
Posty: 550
Dołączył: 17/05/2010 13:56
|
Dlatego piszę, że trzeba wyedytować plik openssl.cnf, w którym są te puste linijki. W wbudowanym openssl w tomato tego nie zrobisz. |
|
|
|
ghoes |
Dodano 22-01-2012 13:02
|
User
Posty: 106
Dołączył: 06/07/2011 19:42
|
Tak powinno być (przynajmniej w naszym przypadku...
[color=#ff0000]/opt/bin/[/color]openssl req -nodes -newkey rsa:2048 -keyout router.openlinksys.info.key -out router.openlinksys.info.csr
Dziękuję koledze Hermes-80 za pomoc... ;)
Połączony z 22 styczeń 2012 13:12:01:
.... jeśli ktoś nie ma openssl w optware, to musi wcześniej zainstalować, bo to wkompilowane w tomato powoduje właśnie tego typu błąd...
przepraszam, że piszę post pod postem, ale niestety nie mogę edytować... może ktoś to scali...
Edytowany przez ghoes dnia 22-01-2012 13:12
|
|
|
|
larius |
Dodano 28-01-2012 18:46
|
User
Posty: 12
Dołączył: 15/01/2012 23:29
|
Mała poprawka do punktu nr 3:
cd /tmp
openssl req -nodes -newkey rsa:2048 -keyout router.openlinksys.info.key -out router.openlinksys.info.csr -config /opt/share/openssl/openssl.cnf
Taka komenda nie zwraca pustych pól, tylko zatrzymuje się i pyta o odpowiedzi jak to zresztą było pisane w tutku.
Połączony z 30 styczeń 2012 15:40:15:
Ehh, nie wiem co robię źle, ale nie chce mi to działać :(
Mam zrobiony certyfikat. Jak go wrzucam do /tmp i przenosze ich zawartość cat'em do plików pem to ładnie widać w podglądzie, że komendy zrobiły swoje.
Jednak gdy robię restart httpd - certyfikary jakby są generowane przez router od początku. Tak jakby regenerate było non stop uruchomione, a nie jest... Podglądam zawarość cert.pem i key.pem i są one z tą treścią generowaną przez router...
Próbowałem zrobić tar'a z właściwymi plikami .pem i wgrać to do nvram - ale efekt jest ten sam....
Any ideas?
Połączony z 30 styczeń 2012 19:02:45:
.
Znalazłem odpowiedź:
http://www.linksysinfo.org/index.php?threads/using-my-own-ssl-certificate-in-tomato.27736/
Wygenerowany certyfikat jest odrzucany, bo jest za długi i router wtedy z automatu generuje swój.
Teraz pytanie za 100pkt, jak zwiększyć limit takiego certyfikatu? Standardowo jest 2048 znaków, mój ma ponad 2500... Niestety już raz wygenerowany klucz (StartSSL) nie jest w ogóle edytowalny i nie mogę go wygenerować w lżejszej wersji :(
Edytowany przez larius dnia 30-01-2012 19:02
NETGEAR WNR3500L@Tomato v1.28.0000 MIPSR2-083V K26 USB Big-VPN by shibby :-)
|
|
|
|
shibby |
Dodano 10-02-2012 18:34
|
SysOp
Posty: 17116
Dołączył: 15/01/2009 20:30
|
wgralem wlasnie certyfikat od startssl i dziala ladnie. Mała uwaga: koniecznie podawajcie poprawne dane teleadresowe, poniewaz beda sam o to wypytywac i weryfikowac. Mi za pierwszym razem odrzucili zgloszenie.
Router: Unifi Cloud Gateway Max
Switch: Unifi USW-Lite-16-PoE
Switch: Unifi USW-Flex-Mini - szt. 2
Wi-Fi: Unifi U6-Lite - szt. 2
Proxmox VE: i5-13400T, 64GB RAM, 2x 512GB NVMe, 3x 2TB SSD
VM #1: Synology SA6400
VM #2: Debian, WWW
VM #3: Home Assistant OS
|
|
|
|
krisan |
Dodano 25-02-2012 23:05
|
Power User
Posty: 207
Dołączył: 22/03/2011 11:48
|
Cytat larius napisał(a):
...
Jednak gdy robię restart httpd - certyfikary jakby są generowane przez router od początku. Tak jakby regenerate było non stop uruchomione, a nie jest... Podglądam zawarość cert.pem i key.pem i są one z tą treścią generowaną przez router...
Próbowałem zrobić tar'a z właściwymi plikami .pem i wgrać to do nvram - ale efekt jest ten sam....
Any ideas?
Połączony z 30 styczeń 2012 19:02:45:
.
Znalazłem odpowiedź:
http://www.linksysinfo.org/index.php?threads/using-my-own-ssl-certificate-in-tomato.27736/
Wygenerowany certyfikat jest odrzucany, bo jest za długi i router wtedy z automatu generuje swój.
Teraz pytanie za 100pkt, jak zwiększyć limit takiego certyfikatu? Standardowo jest 2048 znaków, mój ma ponad 2500... Niestety już raz wygenerowany klucz (StartSSL) nie jest w ogóle edytowalny i nie mogę go wygenerować w lżejszej wersji :(
Ja mam identyczną sytuację: certyfikat wygenerowany zgodnie z pierwszym postem.
Nie działa zarówno jeśli skopiuję do /etc jak i wgram do NVRAM: w obu przypadkach są generowane standardowe pliki *.pem, a w logu pojawia się:
... daemon.warn httpd[4690]: Unable to start SSL
... daemon.info httpd[4690]: Generating SSL certificate...
Aktualizacja:
To bug w wbudowanym httpd czy coś nie tak z moimi kluczami *.pem?
Zaraz po uruchomieniu httpd -d z katalogu /www dostaję:
[b]718025168:error:0B080074:lib(11):func(128):reason(116):NA:0:[/b] Co odpowiada wpisie w logu tomato podanym powyżej.
BTW: Później zachowuje się podobnie, jak przy certyfikacie wygenerowanym z automatu, czyli przy pierwszym wejściu (i po usunięciu certyfikatu z cache-u z przeglądarki)
718025168:error:14094418:lib(20):func(148):reason(1048):NA:0:SSL alert number 48
Edytowany przez krisan dnia 25-02-2012 23:26
|
|
|