Archief Linux Synology

Gratis StartSSL gecertificeerd SSL certificaat op uw Synology Diskstation in begrijpelijke stappen!


LetOp Dit artikel is een publicatie van 16 februari 2010 en op veler verzoek opnieuw geplaatst. De inhoud is verouderd maar het principe van aanmaak van een aanvraagcertificaat op een Synology NAS en deze gebruiken voor de aanmaak van een certificaat bij StartSSL is nog steeds hetzelfde.

Er zijn nogal wat vragen over SSL-certificaten. Met behulp van het Engelstalige forum van Synology hebben we het één en ander kunnen testen én aan de praat gekregen op een Synology DS 207+ NAS en dat we willen u zeker niet onthouden.

Een SSL-certificaat is nodig om gegevens van uw website naar de bezoeker (en visa versa) veilig en versleuteld te verzenden. De adressen zijn te herkennen omdat ze beginnen met HTTPS. De methode die gebruikt wordt werkt door middel van een sleutel (die alleen bij u bekend is, en u dus ten alle tijden geheim moet houden) en een openbare sleutel (die door iedereen te gebruiken is). Deze openbare sleutel moet geverifieerd worden door een bevoegde instantie, bijvoorbeeld het alom bekende Verisign. Gebeurt dit niet dan krijgt de bezoeker een waarschuwing in hun browser te zien met het advies om zo snel mogelijk weg te gaan. En dat willen we niet, toch?

Het probleem is echter dat voor de verificatie van deze certificaten (grof) geld betaald moet worden. Als echte Nederlanders hebben we daar (uiteraard) over het algemeen wat problemen mee. ;o)
Nu is er echter een manier om dit gratis te doen, en wel door middel van een gratis account bij StartSSL. Deze methode hebben we geprobeerd en (met wat hulp) aan de praat gekregen op een Synology DS 207+ NAS-server.

Hieronder wordt de procedure omschreven in 10 stappen. We hebben dit zo compleet en makkelijk mogelijk proberen te omschrijven.
De originele post is op de Synology forum (Engels) te vinden. De eerste Nederlandse beschrijving heb ik gepost op WifiMedia.


LetOp Disclaimer: Struiners Unie is op geen enkele manier aansprakelijk voor beschadiging van uw apparatuur en of andere zaken door tekortkomingen en/of fouten in de beschrijving. Deze beschrijving is louter en alleen gemaakt om het één en ander inzichtelijk te maken en te verduidelijken. We zijn op geen enkele wijze verbonden (financieel of anderzijds) met Synology en/of StartSSL.

Als voorbereiding moet u in uw Synology een map aanmaken die alleen door u te benaderen is. Hier worden namelijk de desbetreffende sleutels en certificaten opgeslagen.
Ook moet u kunnen inloggen in uw Synology via SSH. Dit kunt u in Windows doen door een programma als Putty te gebruiken of in Linux gewoon het SSH commando te gebruiken in een command-prompt. Natuurlijk moet de optie ‘De SSH service inschakelen’ ingeschakeld zijn in uw Synology Disk Station Manager. Deze is te vinden in ‘Management’ –> ‘Netwerkservices’ –> ‘Terminal’.

In de uitleg hieronder betekend alles wat tussen [ ] staat, dat u daar uw eigen configuratie moet invullen. Als voorbeeld, als er staat ‘log in op uw Synology met het commando:’
ssh root@[Uw_Syno_IP_Adres]
en uw IP-Adres van uw Synology is 192.168.0.1 dan wordt het commando dus:
ssh root@192.168.0.1


LetOp Let op! U heeft wel een eigen domeinnaam nodig! Deze zullen we aangeven als [Mijn_Domeinnaam] en dat kan als voorbeeld struinersunie.nl zijn. De functie [Subdomein] is nodig voor uw gedeelte van de site. Dit kan als voorbeeld ‘www‘ of ‘forum‘ zijn. Als er dus staat [Subdomein].[Mijn_Domein] zou dit in dit voorbeeld kunnen zijn: www.struinersunie.nl of forum.struinersunie.nl

LetOp Let op! Als je een subddomein aanmaakt op StartSSL kun je deze niet verwijderen en opnieuw aanmaken waarneer er iets fout gaat. Een goede suggestie is daarom om eerst een ‘test‘-subdomein aan te maken om te kijken of alles volgens wens verloopt. Kies daarom bij de aanmaak van de eerste certificaat een subdomein die u niet gaat gebruiken, bijvoorbeeld test of noppes.

Oké daar gaan we dan!

1 – Log in op uw Synology d.m.v. Putty (Windows) of via een command-prompt in linux. Hieronder het commando om dat in linux te doen:
ssh root@[Mijn_Syno_IP_Adres]
Login als gebruiker ‘root‘ en gebruik daarbij uw ‘admin’ wachtwoord.

2 – Voordat we certificaten gaan maken is er echter een extra bestandje nodig in uw Synology genaamd ‘openssl.conf’ die we van internet halen. Deze moeten we plaatsen in een nieuw aan te maken map genaamd ‘ssl’ in ‘/usr/syno/’. Dit doen we door de volgende commando’s te gebruiken:
cd /usr/syno/
mkdir ssl
cd ssl
wget http://123adm.free.fr/home/pages/documents/syno-cert_fichiers/openssl.cnf

3 – Nadat openssl.cnf is opgeslagen gaan we naar de map die alleen door u te benaderen is en waar alle certificaten worden aangemaakt. Dit doen door d.m.v het volgende commando:
cd /volume1/[Mijn_Prive_Map]

4 – Nu gaan we onze versie van OpenSSL controleren. Getest zijn versies OpenSSL 0.9.8g 19 Oct 2007 en hoger. Daarna gaan we een privé sleutel aanmaken die wordt opgelagen in uw map als ‘some.key’-bestand. Er wordt gevraagd om een ‘passphrase’ (soort wachtwoord). Dit kunt u zelf bedenken, maar let op, schrijf dit ergens op want u heeft het vaker nodig!:
openssl version
openssl genrsa -des3 -out some.key 2048

5 – Omdat de Synology geen sleutels accepteert die beveiligd zijn met een ‘passphrase’ gaan we er één aanmaken zonder paswoord. Deze gaan we opslaan als ‘some.nopass.key’-bestand. Hierbij wordt weer om de ‘passphrase ‘ gevraagd. vul daar exact het zelfde paswoord in als in stap 3:
openssl rsa -in some.key -out some.nopass.key

6 – Nu gaan we in onze privé-map een aanvraag-certificaat aanmaken die we opslaan als ‘some.csr’-bestand:
openssl req -nodes -new -sha1 -key some.key -out some.csr
Er worden wat vragen gesteld die u moet invullen (anders wordt deze niet geaccepteerd door StartSSL). Een overzichtje met uitleg:

Enter pass phrase for some.key: (Vul hier uw paswoord in die u hebt ingegeven bij stap 3)
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]: (NL voor Nederland)
State or Province Name (full name) [Some-State]: (Uw provincie)
Locality Name (eg, city) []: (Plaatsnaam)
Organization Name (eg, company) [Internet Widgits Pty Ltd]: (Uw naam van uw organisatie of site)
Organizational Unit Name (eg, section) []: (Onderdeel van uw organisatie of site)
Common Name (eg, YOUR name) []: (Uw eigen naam)
Email Address []: (uw emailadres van uw site/domein, bijvoorbeeld webmaster@[Mijn_Domeinnaam] )Please enter the following ‘extra’ attributes
to be sent with your certificate request
A challenge password []: (Deze is niet nodig)
An optional company name []:(Deze is niet nodig)

Download de aangemaakte bestanden ‘some.key‘, ‘some.nopass.key‘ en ‘some.csr’ naar uw computer (d.m.v. bijvoorbeeld de Synology filemanager) en sluit de SSH-verbinding:
exit

7 – Maak een StartSSL account aan en voer een domein validatie (onder tabblad ‘Validations Wizard‘ ) uit. Volg de instructies op van StartSSL. Dit houd onder andere in dat u uw privé gegevens moet invullen en dat u een aantal bevestigings E-mails ontvangt. Let er op dat u de goede gegevens invoert, anders wordt uw certificaat niet gevalideerd!! De hele registratie is (helaas) alleen in het Engels.

8 – We gaan nu een Certificaat aanvraag doen. Deze is te vinden onder het tabblad ‘Certificates Wizards‘. Ik heb de procedure hieronder aangegeven. De opties die u moet kiezen staan onderstreept:

8.1Select Certificate Purpose
* Make sure you have already validated a domain name or email address before using this tool! Select the “Validations Wizard” for this task.
* Depending on your preferences and type of software, you need to have a prepared certificate request (CSR) ready for submission.
Certificate Target: Web Server SSL/TLS Certificate

8.2Generate Private Key
* If you created your own private key and certificate request (CSR), please skip this step.
* Provide a password for your private key. (At least 10 characters, max. 32)
* Allowed are only letters and numbers, without spaces!
* Please remember it or write it down somewhere…
Klik op het ‘skip‘ knopje

8.3Submit Certificate Request (CSR)
* Copy and paste the content from the certificate request into the textbox below.
* Make sure, that you do not alter the content and you did not add any spaces!
* Always include the headers and footers of the CSR.
* The CSR must have a SHA1 hash or better, MD5 hashes are not allowed.
* The RSA key size must be 2048 bit or higher.
Hier moet je de inhoud kopieren en plakken van je ‘some.csr’-bestand die je hebt aangemaakt in stap 6
Let op dat je hierbij geen gebruikt maakt van MS Office, Wordpad of andere programma’s die daar op lijken, omdat die tekens toevoegen aan de inhoud. In Windows kun je het beste gebruik maken van ‘Notepad’ (Kladblok). In Linux kun je ‘vi’ gebruiken. Wij hebben gebruik gemaakt van ‘Kate’, die standaard aanwezig is in Linux KDE distributies.

8.4Certificate Request Received
* You submitted your certificate signing request successfully!.
* All content of the certificate signing request is ignored except its public key.
* You may proceed to the next step now.
Klik op het ‘Continue‘ knopje

8.5Add Domains
* Select the top target domain name for your certificate.
* Note: Only domain names which were validated within the last 30 days are eligible for selection.
Kies jouw domein uit het pulldown-balkje en klik op ‘Continue

8.6Add Domains
* You must add one sub domain to this certificate.
* The base domain [Mijn_Domeinnaam] will be included by default in the Alt Name section.
* Note: In order to add multiple domains and sub domains, your Identity must be at least Class 2 validated. Check your status at the “Identity Card”.
Here moet je jouw subdomein invullen, http://[Subdomein].[Mijn_Domeinnaam]. Bijvoorbeeld: www.mijndomein.nl of ftp.mijndomein.nl. Klik op ‘Continue‘ wanneer je klaar bent.

8.7Ready Processing Certificate
* We have gathered enough information in order to sign your certificate now.
* The common name of this certificate will be set to [Subdomein].[Mijn_Domeinnaam] * The certificate will have the following host names supported:
1. [Mijn_Domeinnaam] 2. [Subdomein].[Mijn_Domeinnaam]
* Please click on Continue in order to process the certificate.
Klik op ‘Continue

8.8Save Certificate
* In the textbox below is your PEM encoded certificate.
* Copy and paste the content into a file and save it as ssl.crt.
* Make sure, that you do not alter the content and you did not add any spaces! Save it in ASCII format (plain text).
Save also the intermediate and root CA certificates for the installation at your server (Save As…).
Kopieer en plak de inhoud (d.m.v. Kladblok, vi of Kate) van de tekstbox in een nieuw bestand genaamd ‘ssl.crt’ (zoals hun voorstellen) en sla deze op. Sla ook de ‘intermediate’- en ‘root’ bestanden op op jouw computer d.m.v. op de links te gaan staan, rechter muisknop te klikken en te kiezen voor ‘Opslaan als…’.
Wanneer dat met goed vervolg is gebeurt klik dan op de ‘Finish‘-knop

Opmerking: de intermediate- en root certificaten zijn ook rechtstreeks te downloaden op http://www.startssl.com/certs/

9 – Nu hebben we 6 bestanden:
Gecreëerd op de Synology:
– some.key (stap 3)
– some.nopass.key (stap 4)
– some.csr (stap 6)
Gecreëerd door StartSSL (stap 8.8 ):
– ssl.crt (PEM encoded certificate)
– sub.class1.server.ca.pem (intermediate CA certificate)
– ca.pem (root CA certificate)

10 – The Final Chapter……. (Het laatste hoofdstuk)
Open je ‘Synology Station Manager’ en meld je aan als ‘admin’. Ga vervolgens naar ‘Management’ –> ‘Netwerkservices’ –> ‘Web services’. Controleer op de optie ‘Https-verbinding inschakelen’ is aangevinkt en klik op het knopje ‘Certificaat importeren’.
– Bij het kopje ‘Persoonlijke sleutel’ klik je op ‘Browse…’ en navigeer je naar het ‘some.nopass.key’-bestand op je computer, gemaakt in stap 4.
– Bij het kopje ‘Certificaat:’ klik je op ‘Browse…’ en navigeer je naar het ‘ssl.crt’-bestand op je computer, gemaakt in stap 8.8.
Klik vervolgens op de ‘OK’ knop en je krijgt een melding dat de webserver wordt opgestart. Als alles is goed gegaan kun je nu naar je [Subdomein].[Mijn_Domein] surfen en zul geen waarschuwing meer zien maar wel een slotje in je browser als teken dat de verbinding veilig is opgezet!

 


Toevoeging (01-04-2010)

Afhankelijk van de browser-type en versie, kan het voorkomen dat u toch een venster met een waarschuwing krijgt gepresenteerd. Eén van de oorzaken kan dan zijn dat Startcom/StartSSL niet beschouwt wordt als een gecertificeerd en/of geautoriseerde instantie in de gebruikte browser versie. Om dit op te vangen kan men de root- en intermediate-certificaten installeren (stap 8.8 ) op de Synology Diskstation. Deze zorgen er voor dat dan StartSSL wordt gecontroleerd en toegevoegd als een gecertificeerde/geautoriseerde instantie en de melding niet meer wordt weergegeven. De procedure gaat als volgt:

11 – Log in op uw Synology d.m.v. Putty (Windows) of via een command-prompt in linux. Hieronder het commando om dat in linux te doen:
ssh root@[Mijn_Syno_IP_Adres]
Login als gebruiker ‘root’ en gebruik daarbij uw ‘admin’ wachtwoord.

12 – Ga naar de map, die alleen door u te benaderen is en waar de sub.class1.server.ca.pem (intermediate CA certificate) en ca.pem (root CA certificate) < is opgeslagen, d.m.v het volgende commando:
cd /volume1/[Mijn_Prive_Map]

13 – We gaan nu een nieuwe map aanmaken in ‘/usr/syno/etc/ssl’ genaamd ‘ssl.root’ waar we de desbetreffende bestanden kunnen gaan opslaan:
mkdir /usr/syno/etc/ssl/ssl.root

14 – Kopieer de ca.pem (root CA certificate) en sub.class1.server.ca.pem (intermediate CA certificate) naar de nieuw aangemaakte map:
cp ca.pem /usr/syno/etc/ssl/ssl.root/
cp sub.class1.server.ca.pem /usr/syno/etc/ssl/ssl.root

15 – Om de bestanden te beveiligen veranderen we de ‘eigenaar’ en ‘groep’ naar eigenaar ‘root’ en groep ‘root’. Vervolgens zorgen we er voor dat alleen de eigenaar toegangsrechten krijgt om de bestanden (alleen maar) te lezen (400):
chown root:root /usr/syno/etc/ssl/ssl.root/*.pem
chmod 400 /usr/syno/etc/ssl/ssl.root/*.pem

16 – Om de webserver de nieuwe bestanden te laten gebruiken moeten er wat (Apache) configuratie bestanden aangepast worden. De Synology gebruikt twee onafhankelijke webservers. Eén voor het systeem (‘sys’ – voor het gebruik van Diskmanager, Filemanager enz.) en één voor de gebruiker (‘user’ – voor de webserver die uw webpagina genereert). In de volgende stappen nemen we, als voorbeeld, de gebruikers-server. Om de configuratie bestanden aan te passen maken we gebruik van de standaard aanwezige editor genaamd ‘vi’. In deze configuratiebestanden gaan we de locatie opgeven van de bestanden ca.pem (root CA certificate) en sub.class1.server.ca.pem (intermediate CA certificate). Dit doen we door de volgende procedure te volgen:
– Open de configuratie bestand met de editor:
vi /usr/syno/apache/conf/extra/httpd-ssl.conf-user
(Als u de syteem web-server wilt aanpassen vervang dan ‘httpd-ssl.conf-user’ door ‘httpd-ssl.conf-sys’)
– Gebruik de pijltjes op de toetsenbord de cursor te verplaatsen onder de tekst ‘#SSLCertificateChainFile /usr/syno/apache/conf/server-ca.crt‘ op de lege regel. Dit is (ongeveer) op regel 123.
– Druk op de ‘a’-toets van uw toetsenbord om in de ‘editting’-modus te komen. Vervolgen kunt u de volgende tekst toevoegen (Let op het gebruik van kleine- en grote lettertekens):
SSLCertificateChainFile /usr/syno/etc/ssl/ssl.root/sub.class1.server.ca.pem
– Ga vervolgens naar de lege regel onder de tekst ‘#SSLCACertificateFile /usr/syno/apache/conf/ssl.crt/ca-bundle.crt‘ (ongeveer regel 133) en voeg de volgende tekst toe :
SSLCACertificateFile /usr/syno/etc/ssl/ssl.root/ca.pem
– We zijn klaar met de aanpassingen. Druk op de ESC-toets van uw toestenbord om de ‘editting’-modus te verlaten.
– Om de veranderingen definitief te maken moeten we het configuratie bestand opslaan (w) en afsluiten (q). Dit doen we door de volgende tekens achter elkaar te typen gevolgd door ENTER:
:wq!


LetOp Let op! De aanpassingen in stap 16 overleven niet een firmware-update. Na elke firmware update zult u dus de aanpassingen in /usr/syno/apache/conf/extra/httpd-ssl.conf-user en/of /usr/syno/apache/conf/extra/httpd-ssl.conf-system opnieuw moeten maken!

 

17 – Om de veranderde instellingen actief te maken moeten we webserver herstarten. Daarvoor gebruiken we het volgende commando:
/usr/syno/etc/rc.d/S97apache-user.sh restart
(indien u de systeem webserver wilt herstarten gebruik dan ‘S97apache-sys.sh‘ in plaats van ‘S97apache-user.sh‘)

 


LetOp Let op! Sla de 6 bestanden genoemd in stap 9 ergens veilig op zodat u ze niet kwijt kunt raken en zonder dat er iemand anders toegang tot kan krijgen. Als alles goed werkt verwijder dan ook de bestanden in uw privé-map op de Synology!

Klaar!

Nogmaals, Struiners Unie is op geen enkele manier aansprakelijk voor beschadiging van uw apparatuur en/of andere zaken door tekortkomingen en/of fouten in de beschrijving. We hebben dit louter gemaakt om het één en ander inzichtelijk te maken en te verduidelijken. We zijn op geen enkele wijze verbonden (financieel of anderzijds) met Synology en/of StartSSL .

We hopen dat we met deze beschrijving het één en ander inzichtelijk hebben gemaakt betreffende het gebruik en aanvraag van een SSL certificaat. Zelf hebben we er zelf nogal veel tijd en moeite in gestoken om het allemaal werkend te krijgen. We hopen dat met behulp van deze beschrijving dat u het allemaal wat sneller voor elkaar heeft als dat wij het hadden…. 😛

 


Extra Handige Synology Tips! (Toegevoegd op 26-09-2010)

 

Tip 1:

Voor iedereen die zijn httpd-ssl.conf-user of httpd-ssl.conf-sys -bestanden wil aanpassen vanuit de Synology Diskmanager zonder SSH log-in procedures en moeilijke Linux instructies, is hier de volgende tip:

Installeer en gebruik de ConfigFile Editor die te vinden is op: http://www.mertymade.com/syno/index.html#cfe

Voeg deze 2 regels toe aan de ConfigFile Editor configuratie file:
/usr/syno/apache/conf/extra/httpd-ssl.conf-user,SSL User config file
/usr/syno/apache/conf/extra/httpd-ssl.conf-sys,SSL System config file
Veranderingenkunt u dan rechtstreeks doen vanuit de Diskstation Manager!

 

Tip 2:

U kunt ook Midnight Commander installeren op uw Synology. Deze kunt u dan gebruiken als u bent ingelogd in uw Synology via SSH. Hiermee kunt u makkelijker en overzichtelijker bestanden en mappen bewerken zonder allemaal Linux instructies te gebruiken.

De voorwaarde is wel dat u de IPKG bootstrap geïnstalleerd moet hebben. Welke u moet gebruiken is afhankelijk van de chipset die in uw Synology NAS aanwezig is. De complete Wiki inclusief uitleg en files is te vinden op de Synology Wiki pagina’s (Engels): http://forum.synology.com/wiki/index.php/Overview_on_modifying_the_Synology_Server,_bootstrap,_ipkg_etc

Midnight commander kunt u installeren door, na te zijn ingelogd als ‘root’-gebruiker (met admin wachtwoord), de volgende instructie op te geven:
ipkg install mc
Het pakket wordt dan gedownload en geïnstalleerd. U kunt vervolgens Midnight Commander opstarten door middel van het volgende commando in te typen:
mc -c

 

Heeft u opmerkingen, aanvullingen, verbeteringen, opmerkingen en/of nog (betere) tips? Laat uw reactie achter en we zullen het zo spoedig mogelijk beantwoorden!

SUC⁶!

© 2010 STRUINERSUNIE.NL

3 Comments

  1. ik denk dat de StartSSL webinterface voor de zoveelste keer is omgegooid. De informatie uit deze howot is in ieder geval niet meer up to dat en vanaaf het moment dat er op de StartSSL website dingen moeten worden gedaan komt het in geen velden of wegen meer overeen.

  2. hartelijk dank voor deze how to. Na 1 jaar moeten de SSL certificaten worden vernieuwd. Is het mogelijk om in een kleine aanvulling van deze pagina uit de doeken te doen hoe dit in zijn werk gaat?

    1. Ehh, dit artikel is al meer dan 6 jaar oud. Misschien is het inderdaad wel eens tijd voor een nieuwe versie, waarin we jouw opmerking als onderdeel toevoegen.

      In ieder geval werkt het updaten van een certificaat hetzelfde als een nieuwe, met de uitzondering dat er geen nieuw StartSSL account hoeft worden aangemaakt. Als je inlogt met dezelfde computer en browser zal veel gegevens gewoon weer voorhanden zijn.

      Bedankt voor de suggestie, we proberen weer eens een nieuwe versie te gaan maken. Dit kan even tijd kosten want er moet weer van alles getest, uitgezocht en gestruind worden. Das ook wel weer leuk, natuurlijk! 😉

Een reactie plaatsen

Uw email adres wordt niet gepubliceerd.Verplichte velden zijn gemarkeerd met *