U bevindt zich nu op een technische pagina over de software Mercator. Deze pagina bevat specifieke informatie die bestemd is voor professionals van de software Mercator. Wenst u naar algemenere informatie over Mercator door te gaan?


   Deze vraag niet meer stellen

Versleutel gegevensuitwisselingen tussen Mercator en de SQL server: "server side" methode

0000002684     -      27-07-2017

Als de communicatie tussen Mercator (client) en de SQL-server niet uitsluitend via een lokaal of een VPN-verbinding gaat is het noodzakelijk om de verbinding te encrypteren met behulp van een SSL-certificaat. Het voordeel van deze "server-side" methode is dat het toelaat om deze veiligheid op te leggen voor alle databases en client-applicaties. Dit is soms nadelig, wat bijgevolg de voorkeur geeft aan de "client side"-methode. Inderdaad de vaste clients in een netwerk van een bedrijf of de zij die communiceren via een beveiligde tunnel moeten deze methode niet gaan gebruiken.


De managementsconsole voor het beheer van certificaten zal meermaals gebruikt worden in deze tutorial. Hiervoor moet u elke keer deze stappen uitvoeren:

  • Open MMC.exe
  • In het menu Bestand kies je voor "Module Toevoegen/Verwijderen" (Add/Remove Snap-in)
  • Voeg "Certificaten" toe
  • Kies voor "Computeraccount" (Local computer)
  • Klik op "Beïndigen" en vervolgens op "OK"


Stap 1: Bepaal de FQDN van de SQL-server

De eerste stap bestaat uit het bepalen van de FQDN (fully qualified domain name) van de SQL-server. Inderdaad, de algemene naam (CN) van het certificaat dat gebruikt zal worden moet verplicht identiek zijn aan die van de FQDN. Deze waarde kan verkregen worden via deze SQL-query:

DECLARE @Domain NVARCHAR(100)
EXEC master.dbo.xp_regread 'HKEY_LOCAL_MACHINE', 'SYSTEM\CurrentControlSet\services\Tcpip\Parameters', N'Domain',@Domain OUTPUT
SELECT Cast(SERVERPROPERTY('MachineName') as nvarchar) + '.' + @Domain AS FQDN

In deze tutorial gaat het om het "exemple.domain.local".


Stap 2: forceer encryptie op de SQL-server

Op de server waarop SQL-server draait, moet u SQL Server Configuration Manager opstarten.

Klik hier op de node "Configuratie van het SQL Server netwerk" en vervolgens gebruik je het contextueel menu op "Protocols voor MSSQLSERVER".

Forceer encryptering door deze optie op "JA" te zetten.

In het tweede tabblad kies je een beschikbaar certificaat.

Wat doen indien er geen enkel certificaat beschikbaar is op de SQL-server?

Klik links op "Services SQL-server" en via het context menu ga je naar "SQL Server (MSSQLSERVER), herstart de SQL-server.

Opmerking: in deze tutorial, moet MSSQLSERVER eventueel vervangen worden door de naam van de instance die u gebruikt.


Stap 3: Bepaal het bovenliggende certificaat van het hierboven gebruikte certificaat

Op de server waarop SQL Server aanwezig is, open je de managementsconsole voor het beheer van certificaten zoals hierboven aangegeven. Zoek de volgende map:

In deze map, moet het certificaat van hierboven verschijnen.

Vervolgens moet men het CA (Certificate Authority) identificeren, welke afhankelijk is van het certificaat.

Het is mogelijk dat dit certificaat CA zich bevind op deze zelfde server of op een andere server, bijvoorbeeld de domaincontroller.


Stap 4: het CA-certificaat exporteren

Op de server waarop het CA-certificaat aanwezig is , open je de managementsconsole voor het beheer van certificaten op de manier zoals hierboven aangegeven. Het certificaat bevindt zich zeker in de map "Persoonlijk". Localiseer het certificaat CA. Via het context menu kan je het certificaat exporteren. In de export-assistent accepteert u alle standaardwaarden. De private key mag NIET geëxporteerd worden.

De assistent zal een bestand in het CER-formaat produceren, met hierin het CA-certificaat (publieke sleutel).

Let op voor de vervaldatum van het certificaat, als het certificaat vervallen is, zal het proces proces uit stap 4 herbeginnen.


Stap 5: configuratie van de client

Men moet nu het unieke CA-certificaat installeren in de map van de Vertrouwde Cerificaten. Deze operatie is nodig omdat het certificaat dat gebruikt zal worden door de SQL-server herkend moet worden als een geldig certificaat. Indien deze stap niet correct uitgevoerd wordt, zal de volgende error verschijnen in de event-viewer (system): Het ontvangen certificaat van de externe server is uitgegeven door een niet-vertrouwde certificeringsinstantie. Bijgevolg kunnen de gegevens in het certificaat niet gevalideerd worden. Verzoek TLS-verbinding mislukt.

Hiervoor moet u op de client de managementsconsole voor het beheer van certificaten openen en zoeken naar de map met Vertrouwde certificaten" (Trusted Root Certification Authorities). Via het context menu kan je hier het CER-bestand dat opgemaakt werd in de vorige stap importeren.

Opmerking: stappen 4 en 5 kunnen genegeerd worden indien het CA-certificaat reeds aanwezig is op de client.

Er moet niks gewijzigd worden in de verbindingsinstellingen van Mercator (bestand Mercator.connection)

Start Mercator en verifieer dat de SSL-encryptering goed geactiveerd is in "Tools-Gebruikersinformatie".

session_ssl


Opmerkingen:

  • Deze tutorial toont hoe je "privé"-certificaten kan gebruiken om de communicatie met de SQL-server te encrypteren. Andere bestaande methodes, waarvan bijvoorbeeld het gebruik van commerciële certificaten uitgegeven door erkende bedrijven als CA vallen buiten het bereik van deze documentatie.
  • Het versleutelen van data helpt voorkomen dat gegevens onderschept kunnen worden voor kwaadaardige doeleinden. Dit verzekert geen beveiliging voor de SQL-server, hiervoor moet de poort (TCP 1433) strikt beveiligd worden door een correct geconfigureerde firewall.
  • De SSL-configuratie voor de uitwisseling met de SQL-Server moet nooit tegelijk uitgevoerd worden "server side" en "client side".
  • In geval van een fout met de certificaten, zijn er enkele tutorials terug te vinden op het internet die suggereren dat je deze lijn moet toevoegen aan de Mercator.Connection file: TrustServerCertificate=True. We kunnen deze praktijk alleen maar afraden, omdat je zo elk certificaat zou kunnen gebruiken.
  • De techniek die hier uitgelegd wordt is niet specifiek aan Mercator, daarom valt dit ook buiten de ondersteuning van Mercator.

Wat doen indien het certificaat niet beschikbaar is op de SQL-server

1)Op de domaincontroller, moet men indien nodig deze rol toevoegen: Services van Active Directory Certificaten. Vervolgens moet je in het server beheer klikken op AD CS

en de voorgestelde configuratie uitvoeren in die gele waarschuwing die verschijnt.

In deze configuratie zal Windows Server voorstellen om een private key en het CA-certificaat aan te maken. Bepaal een vervaldatum die voldoende is zodat je stappen 3 en volgende niet te vroeg moet herhalen.

Opmerking: Active Directory zorgt voor een automatische verspreiding van root-certificaten. Daarom zouden elke client en server in het domein over deze certificaten moeten beschikken na het herstarten. Dit zou stap 4 en het eerste punt uit stap 5 onnodig maken. (Deze verspreiding is niet noodzakelijk "onmiddellijk") Het kan ook na enkele uren uitgevoerd worden.

2) Op de server waarop SQL-server draait, start u de managementsconsole voor het beheer van certificaten. Localiseer het persoonlijke archief en kies via het contextmenu voor de optie "Nieuw certificaat aanvragen"

  • Kies "Inschrijvingsstrategie op bais van Active Directory"
  • Klik op "Computer"
  • Open de "Details" en klik op "Eigenschappen"
  • indiquez le FQDN dans le nom convivial et la description
  • Vul het FQDN in in de naam en de beschrijving in het tabblad "Onderwerp", vul "Nom commun" in met de waarde uit de FQDN.

Eens je het certificaat verkregen hebt, herneem je in stap 2.