Changes between Initial Version and Version 1 of Documentatie/Ontwikkelaar/OpenAC3/Certificaten


Ignore:
Timestamp:
01/17/17 15:02:03 (9 years ago)
Author:
adriaan
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Documentatie/Ontwikkelaar/OpenAC3/Certificaten

    v1 v1  
     1= FENAC !ZorgDomein SSL Inrichting = 
     2 
     3Dit document beschrijft hoe de FENAC de communicatie tussen OpenAC 3 Server 
     4(decentraal, bij de AC's zelf -- dat zijn de zorgverleners) en OpenACHub 
     5(centraal, bij de FENAC -- dat is de tussen-postbus voor !ZorgDomein-verkeer) 
     6beveligd is en welke procedures gehanteerd worden. 
     7 
     8Algemeen geldt dat de clients (dwz. OpenAC 3 Server) controleren dat de 
     9server (dwz. OpenACHub) ge-identificeerd wordt door het juiste certificaat, 
     10en aan de server-kant wordt gecontroleerd dat (a) de client een geldig certificaat 
     11aanbiedt en (b) de client, ge-identificeerd door het certificaat, de uitvraag 
     12mag doen in de request (dwz. mag het client certificaat wel verwijzingen opvragen 
     13voor de aangegeven AGB code). 
     14 
     15Revisies: 
     16 - 0.1 dd 20170105 initieel document 
     17 
     18 
     19== SSL Chain of Trust == 
     20 
     21Voor de !ZorgDomein koppeling heeft de FENAC een eigen, self-signed, CA key 
     22gemaakt. Gedurende de test-fase wordt geen extra aandacht besteed aan de 
     23beveiliging van de host waarop de CA key en intermediate certificates opgeslagen 
     24worden (dwz. het is een werkstation ten burele van de FENAC). Aangezien deze root-CA alleen gebruikt wordt voor het verstrekken van de intermediate voor de !ZorgDomein-koppeling wordt dit niet als een zwaarwegend probleem gezien. 
     25 
     26=== CA Aanmaken === 
     27 
     28FENAC maakt gebruik van het standaard OpenSSL helper-script CA.pl om de CA root 
     29en intermediate certificates te genereren. 
     30 
     31 - CA root: `CA.pl -newca` 
     32   - In te voeren gegevens voor deze CA root zijn: 
     33     {{{ 
     34        Subject: 
     35            countryName               = NL 
     36            stateOrProvinceName       = Utrecht 
     37            organizationName          = FENAC UA 
     38            commonName                = fenac.nl 
     39            emailAddress              = info@fenac.nl 
     40}}} 
     41   - De key die in de test-fase wordt gebruikt, heeft deze fingerprints: 
     42     {{{ 
     43         X509v3 extensions: 
     44            X509v3 Subject Key Identifier: 
     45                C9:D7:1C:4B:E3:23:9A:A3:FA:66:41:40:55:FC:68:5B:DB:D4:19:0C 
     46            X509v3 Authority Key Identifier: 
     47                keyid:C9:D7:1C:4B:E3:23:9A:A3:FA:66:41:40:55:FC:68:5B:DB:D4:19:0C 
     48}}} 
     49 - Intermediate: `CA.pl -newreq ; CA.pl -signCA` 
     50   - In te voeren gegevens voor deze intermediate zijn (m.n. andere CN): 
     51     {{{ 
     52        Subject: 
     53            countryName               = NL 
     54            stateOrProvinceName       = Utrecht 
     55            localityName              = Utrecht 
     56            organizationName          = FENAC UA 
     57            organizationalUnitName    = ZorgDomein Koppeling 
     58            commonName                = zd.fenac.nl 
     59            emailAddress              = info@fenac.nl 
     60}}} 
     61   - De key die in de test-fase wordt gebruikt, heeft deze fingerprints: 
     62     {{{ 
     63        X509v3 extensions: 
     64            X509v3 Subject Key Identifier: 
     65                7F:6C:AF:8A:77:48:33:6E:4E:29:E9:F3:79:A0:8B:A2:6C:A6:CD:09 
     66            X509v3 Authority Key Identifier: 
     67                keyid:C9:D7:1C:4B:E3:23:9A:A3:FA:66:41:40:55:FC:68:5B:DB:D4:19:0C 
     68}}} 
     69 - Intermediate opslaan in demoCA directory: 
     70   - `mv newcert.pem demoCA/intermediatecert.pem` 
     71   - `mv newkey.pem demoCA/private/intermediatecert.pem` 
     72 - Certificate chain maken: 
     73   - `cat demoCA/intermediatecert.pem  demoCA/cacert.pem > demoCA/fenaczd-chain-cert.pem` 
     74 
     75 
     76### Client Certificates 
     77 
     78Gedurende de test-fase worden client-certificates door de FENAC zelf uitgegeven 
     79(zoals VECOZO en het UZI register ook doen). Er wordt niet gewerkt als een 
     80traditionele CA met binnenkomende sign-requests. Gedurende de test-fase wordt 
     81geen extra aandacht besteed aan de beveiliging van de host waarop de client- 
     82certificates worden opgeslagen. Gedurende de test-fase wordt geen extra aandacht 
     83besteed aan de manier waarop de client-certificates getransporteerd worden 
     84naar de clients (dwz. naar de AC's waar ze de certificaten installeren in hun 
     85OpenAC 3 Server). 
     86 
     87 - Request aanmaken: `CA.pl -newreq-nodes` 
     88   - Als test hebben we een certificaat voor AC Utrecht gemaakt. Aanbevolen 
     89     in om `OU=ZorgDomein Koppeling` te gebruiken, en voor CN het domein van 
     90     de instelling (ic. acutrecht.nl) zonder subdomeinen. 
     91 - Request signen (met de intermediate!):  
     92   {{{ 
     93openssl ca  -policy policy_anything \ 
     94   -cert demoCA/intermediatecert.pem -keyfile demoCA/private/intermediatecert.pem \ 
     95   -out newcert.pem -infiles newreq.pem 
     96}}} 
     97 - Certificate opslaan in demoCA directory. Dit gebeurt automatisch (met de 
     98   serial / hash) voor het getekend certificaat. Gedurende de test-fase worden de 
     99   private-keys ook opgeslagen in de demoCA, onder de naam van de aanvrager: 
     100   - `mv newkey.pem demoCA/private/ac_utrecht.pem` 
     101 - Certificate omzetten naar PKCS!#12 voor gebruik door Windows / OpenAC 3 Server (hier met de hashcode van het nieuwe certificaat):  
     102   {{{ 
     103openssl pkcs12 -export -out ac_utrecht.pfx  \ 
     104  -in newcerts/F1633F593C632CE2.pem \ 
     105  -inkey private/ac_utrecht.pem \ 
     106  -certfile fenaczd-chain-cert.pem 
     107}}} 
     108