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 uitwisselingen tussen Mercator en de SQL server: "client side" methode

0000002683     -      26-01-2017

Als de communicatie tussen Mercator (de klant) en de SQL server niet via een uitsluitend particulier lokaal netwerk passeren, dan is het noodzakelijk om met behulp van een SSL certificaat te encrypteren. Het voordeel van de “client side” methode is dat het mogelijk is om zelf te kiezen welke applicaties en posten een beveiligde communicatie hebben. Normaal gesproken horen vaste posten in het lokale netwerk, of zei die communiceren via een beveiligde tunnel, deze instelling niet te hebben. Door deze flexibiliteit, gaat de voorkeur uit naar de “server-side” methode


Het certificaat console beheer wordt meerdere malen in deze tutorial aangehaald. Om dit te doen, zal het nodig zijn om deze verschillende stappen elke keer uit te voeren:

  • MMC.exe ENTER
  • kies in het bestand menu "Toevoegen / verwijder Snap-in" (Add/Remove Snap-in)
  • voeg "Certificaten" toe
  • kies "Een computer account" (Local computer)
  • klik op “Beëindigen” en vervolgens op “OK"


Stap 1 : bepaal de FQDN van de SQL server

De eerste stap is het bepalen van de FQDN (fully qualified domain name) van de SQL server. De algemene naam (CN) van het certificaat dat gebruikt zal worden, zal dan natuurlijk ook identiek zijn aan die FQDN. Deze waarde kan worden verkregen via de SQL request:

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 zal het “example.domain.local" zijn.


Stap 2: zoek het certificaat dat verzonden gaat worden van de server naar de client om de encryptie uit te voeren

Op de server waarop de SQL Server staat opent u het certificaat console beheer, zoals hierboven weergegeven. Zoek de volgende map:

In deze map verschijnt een certificaat waarin het object (subject) gelijk is aan de FQDN

Vervolgens identificeren we de certificaat autoriteit (CA = Certificate Authority) waar het certificaat van af hangt.

Het is mogelijk dat het CA certificaat zich bevindt op dezelfde server als op een andere server, zoals de domain controller.

Wat als er geen certificaat beschikbaar is op de SQL server?


Stap 3: Exporteer het CA certificaat

Op de server waar het CA certificaat op staat, opent u de certificaat management console zoals hierboven getoond. Het certificaat bevindt zich in de map “Persoonlijk". Zoek het CA certificaat. Exporteer het certificaat via het contextmenu. Accepteer alle standaardwaarden in de export wizard. Uw persoonlijke sleutel mag niet geëxporteerd worden.

De wizard zal een bestand aanmaken in het CER formaat dat het CA certificaat bevat (publieke sleutel).

Noteer bij het passeren de vervaldatum van het certificaat. Indien u voorbij de datum bent moet u herstarten vanaf stap 3.


Stap 4: configuratie van de client post

Het CA certificaat moet alleen geïnstalleerd worden als een CA trusted root. Dit is nodig opdat het certificaat dat gebruikt gaat worden door de SQL Server, herkend wordt als een geldig certificaat. Als deze stap niet correct wordt uitgevoerd, dan zal de volgende foutmelding getoond worden in de Event Viewer (Systeem):Het certificaat dat ontvangen werd door de server is uitgegeven door een niet vertrouwde certificeringsinstantie. Bijgevolg kunnen er geen gegevens gevalideerd worden in het certificaat. TLS-verbinding verzoek mislukt.

In dit geval, op de client, opent u de Certificate Management Console en zoekt u de map (Trusted Root Certification Authorities). Via het hierboven vermelde context menu is het noodzakelijk om het gemaakte CER bestand in de vorige stap te importeren.

Opmerking: stap 3 en het eerste deel van stap 4 kan worden genegeerd als het CA certificaat reeds bestaat op de client.

Zorg ervoor dat de SQL server goed bereikbaar is via de FQDN. In dit geval is het noodzakelijk om een wijziging aan te brengen in het DNS domein of om het C:\Windows\System32\drivers\etc\hosts bestand aan te passen door een lijn toe te voegen die het volgende bevat:

  • het IP adres op de SQL server
  • tab
  • FQDN

Controleer of de ping opdracht exemple.domain.local werkt en of het de SQL server goed bereikt.

In het mercator.connection bestand van deze Mercator passen we de we de waarde aan van de SQLServer en specifiek de FQDN.

SqlServer = exemple.domain.local

Voeg deze regel ook toe:

Complement = encrypt=true

Vervolgens start u Mercator en kijkt u na of de SSL encryptie is ingeschakeld in “Tools / Gebruikersinformatie"

session_ssl


Opmerkingen :

  • Deze tutorial laat zien hoe u “privé” certificaten gebruikt om de communicatie met de SQL server te versleutelen. Er bestaan andere methoden, zoals het gebruiken van commerciële bewijzen als CA van bekende bedrijven. Dit valt buiten het kader van deze documentatie.
  • Het versleutelen van gegevens helpt voorkomen dat gegevens onderschept kunnen worden in transit en gebruikt kunnen worden voor kwaadaardige doeleinden. Dit betekend niets zonder de bescherming van de SQL server, met inbegrip van de (tcp 1433) poort die sterk beschermd moeten worden door een goed geconfigureerde firewall.
  • De SSL configuratie van de uitwisselingen met de SQL Server mag nooit uitgevoerd worden op zowel de “server side” als de “client side".
  • Als er een fout optreed met de certificaten stellen sommige internet tutorials voor om de lijn Complement in het Mercator.connection bestand naar:  Encrypt=True;TrustServerCertificate=True te zetten. We kunnen deze praktijk alleen maar ontmoedigen, omdat in dit geval om het even welk certificaat kan worden gebruikt
  • De hier getoonde techniek is niet specifiek aan Mercator. Daarom vallen vragen in verband met deze zaak buiten het toepassingsgebied van de Mercator support.

Wat te doen als er geen certificaat beschikbaar is op de SQL server?

1) Op uw server domain controller voegt u, indien nodig, de rol toe: Active Directory Certificate Services. Dan klikt men, in de server manager, op AD CS

En voer de configuratie uit die voorstelt werd in het gele waarschuwingsbericht.

In deze configuratie stelt Windows Server voor om een private sleutel en een CA certificaat aan te maken. Bepaal een vervaldatum met genoeg afstand om te voorkomen dat u stap 3 en latere niet te snel moet herhalen.

Opmerking: Active Directory zorgt voor een automatische verspreiding van de basiscertificaten. Na het heropstarten hoort daarom ieder geregistreerde werkstation en server in het domein dit certificaat verwijderen. Dit maakt stap 3 en het eerste punt van stap 4 niet meer noodzakelijk. (Deze verspreiding gebeurt niet noodzakelijk onmiddellijk. Het kan worden uitgevoerd na enkele uren.)

2) Start op de server die de SQL server bevat, de Certificate Management Console. Vind het persoonlijk archief en voer “Nieuw certificaat aanvragen" uit.

  • kies "Inschrijvingsbeleid in Active Directory"
  • klik op "Computer"
  • breid "Details" uit en klik op "Eigenschappen"
  • duid de FQDN aan in de aangepaste naam en de beschrijving
  • In "Object" voegt u "Common name" toe met de FQDN als waarde

Nadat u het certificaat behaald hebt, kunt u stap 2 herhalen.