Tjänst under avveckling

Dessa sidor kommer att tas bort 2023-01-01

Dokumenthistorik

VersionDatumFörfattareKommentar
0.1

 

Dokument upprättat i Confluence
1.0

 

Första publika versionen
1.1

 

Modifierat och formaterat efter att detta gjorts i Ineras miljöer för Säkerhetstjänster
1.2

 

Lagt till information om att tänket vid nyinstallation kan bli annorlunda


Bakgrund

SITHS-förvaltningen meddelade 2019-04-26 via Nyhetsbrev och Ineras hemsida att man kommer att begära utträde ur Microsoft Trusted Root Program vilket innebär att SITHS funktionscertifikat blir olämpliga att använda för webbsidor.

https://www.inera.se/siths_nyhetsbrev_2019_april_rootcertifikatprogram

Det står dock inte något i detta meddelande om när detta kan komma att ske men när detta får genomslag blir den direkta påföljden att applikationer som använder listan från detta program inte längre kommer att lita på certifikat utgivna av SITHS. Det bör bland annat gälla Microsofts webbläsare Edge och Internet Explorer men även Googles webbläsare Chrome som kommer att varna användarna som besöker webbsidor som presenterar sig med SITHS-certifikat som potentiellt osäkra. Då det inte är känt när i tid detta kommer att hända kan rekommendationen inte bli annat än att hantera detta så snart som möjligt ifall man vill att användarna ska slippa sådana varningar.

Vid ytterligare frågor kring utträdet kontakta SITHS-förvaltningen genom Ineras Kundservice.

Lokala Säkerhetstjänster

Detta betyder att ansvariga för installationer av Lokala Säkerhetstjänster bör byta ut de certifikat som exponeras i en webbläsare om man vill att användarna ska slippa varningar i sin lokala IdP och gränssnitt för t.ex. Spärr- och Loggadministration. Lokala Säkerhetstjänster exponerar flera webbservrar för olika funktioner som var och en presenterar sig med ett certifikat när webbläsaren ansluter. Traditionellt har Lokala Säkerhetstjänster installerats med port-adressering och då har man klarat sig med ett certifikat. Senare versioner har dock haft stöd för installation med standardporten 443 för säker kommunikation och då har det krävts ett cert per webbserver/domän eftersom SITHS aldrig har kunnat beställas som wildcard-cert eller med flera domännamn i certifikatets fält Subject Alternative Name-fält.

De funktioner/domäner/webbservrar som Lokala Säkerhetstjänster startar upp i 443-konfiguration är:

  • Grunddomänen - t.ex. sakerhetstjanst.inera.se
  • IdP-domänerna - tex idp.sakerhetstjanst.inera.se och secure.idp.sakerhetstjanst.inera.se (observera att secure-adressen måste vara en underdomän till idp-adressen)
  • Common domain - t.ex. cd.sakerhetstjanst.inera.se (en funktion som nog inte används så man har oftast använt något av de andra certifikaten här)
  • WS-domänen - t.ex. ws.sakerhetstjanst.inera.se


Förändringen gäller alltså alla domäner utom WS-domänen som fortsatt bör presentera ett SITHS-certifikat ifall man har konsumenter som förväntar sig detta (t.ex. NTjP och RTjP). Övriga domäner används i en webbläsare och bör därför bytas ut.

Ny certifikatsutgivare

Man skriver i sitt nyhetsbrev att "Inera erbjuder sina kunder att teckna avtal direkt med Telia för att få SSL-certifikat för detta ändamål". Läs om hur beställning sker på SITHS sidor på inera.se under "Beställ SSL-certifikat av Telia". Telia erbjuder s k SAN-certifikat (certifikat med flera domännamn i certifikatets fält Subject Alternative Name-fält). Ifall man väljer en leverantör som inte erbjuder SAN-certifikat måste man beställa nya certifikat som motsvarar det antal SITHS-certifikat man har i dagens installation. Man kan givetvis även använda andra leverantörer av certifikat som t.ex DigiCert (Basic SAN version, vilket den nationella installation kommer nyttja). 

Certifikat för flera domäner.Prislistan i juni 2019 från Telia (ex moms) för certifikat
CA: "TeliaSonera Root CA v1" 



Konfiguration


En sak att komma ihåg är att standardkonfigurationen för Lokala Säkerhetstjänster är att använda grunddomänens certifikat (med id:t app under Nyckelhantering) som systemidentitet för att presentera sig när tjänsten själv ropar på externa tjänster som HSA, Personuppgiftstjänsten och Nationell Spärreplikering (direkt eller via NTjP/RTjP). Lokala Säkerhetstjänster måste fortfarande använda ett SITHS-certifikat för denna kommunikation och dessutom så är befintligt app-certifikat upplagt för åtkomsträttigheter i de externa tjänsterna. Byter man ut app-certifikatet så måste man därför även konfigurera Lokala Säkerhetstjänster att använda en annan nyckelgrupp för extern kommunikation. Nedan så kopierar vi konfigurationen för dagens app-certifikat till ett nytt id som vi kallar system och konfigurerar sedan tjänsten att använda det nya id:t som systemidentitet. På så sätt bibehålls systemidentiteten efter det att man ut byter app-certifikatet som ska presenteras för webbläsare.

På samma sätt som att systemet är konfigurerat för att använda app-certifikatet vid kommunikation med andra system så är IdP och SP konfigurerad att använda certifikaten med id idp respektive app för signering av request och response under autentiseringen. Det finns inget krav på att signering ska ske med ett SITHS-certifikat men att byta certifikat för signering medför vissa konsekvenser:

  • Byter man certifikat som SP:n signerar sina autentiseringsförfrågningar med måste nytt SP-metadata genereras från SP:n och läsas in så att IdP:n godkänner förfrågningarna.

  • Byter man certifikat som IdP:n signerar svar och SAML-biljetten med så måste man generera nytt IdP-metadata och distribuera detta till samtliga SP:ar som IdP:n servar.

SP:ns certifikat för signering kan konfigureras till att vara det system-certifikat vi kopierat och beskrivit så att systemet signerar sina requests till IdP:n med samma certifikat som tidigare. Det skulle heller inte vara någon stor operation att använda det nya app-certifikatet till signering och byta ut SP-metadata i IdP:n alternativt välja WS-certifikatet så att det fortsätter signeras med ett SITHS-certifikat.

IdP:ns certifikat för signering däremot kan det vara en större operation att byta ut ifall man har flera SP:ar anslutna. Därför kan man skapa en kopia av även denna certifikatskonfiguration och kalla t.ex. idpsystem som man konfigurerar IdP:n att använda. Då har man i och för sig ännu ett SITHS-certifikat att hålla uppdaterat så om man inte kan eller byta signeringscertifikat för IdP gör man kanske en kopia av befintlig certifikatskonfiguration inledningsvis och planerar ett senare certifikatsbyte mer noggrant med anslutna SP:ar. 

I instruktionerna nedan så kopieras konfiguration så att ingen metadata behöver bytas ut men det är upp till den ansvarige för installationen av Lokala Säkerhetstjänster som avgör hur detta skall sättas upp.
Vid en nyinstallation av Lokala Säkerhetstjänster kan tänket kring certifikatsuppsättning bli lite annorlunda (se sidorna för Lokala Säkerhetstjänster 2.17).

Utförande

Grundkonfigurationen av Säkerhetstjänster har inte tagit höjd för att arbeta med olika utgivare på certifikaten som används för presentation och certifikatsanvändning vid externa anrop. Därför blir förändringarna ganska omfattande och innebär:

  • Backup
  • Kopiering av konfiguration så att andra delar av koden kan fortsätta använda befintliga SITHS-certifikat
  • Inläsning av nya certifikaten via GUI men filhantering för att konfigurera in dessa.
  • Hantering av nya Root-certifikat i trust store.
  • Hantering av nya lösenord
  • Skapande av ny webbserver och ny konnektor.



  1. Beställ nya certifikat och gör dessa till PKCS12-filer med filändelsen *.p12
    (observera att Säkerhetstjänster inte hanterar specialtecken i lösenord till p12-fil och privat nyckel)

    1. Telia
    2. DigiCert
    3. (m.fl)


  2. Ta en backup av konfigurationskatalogen på den delade diskytan (warning)

    Exempel
    sudo mkdir /var/tmp/certbyte
    sudo cp -R /share/Sakerhetstjanst2.17/local/config/ /var/tmp/certbyte/


  3. Kopiera app-certifikatets konfiguration så att vi får en nyckelgrupp med namnet system

    1. Kopiera XML-filen app.xml i katalogen /share/Sakerhetstjanst2.17/local/config/com.logica.se.iac.identity.pkcs12.factory/ till en fil i samma katalog med namnet system.xml

      Exempel:
      cd /share/Sakerhetstjanst2.17/local/config/com.logica.se.iac.identity.pkcs12.factory/
      sudo cp app.xml system.xml


    2. Editera filen system.xml och byt ut ordet app på två ställen (attributen pid och name)

      Exempel:
      sudo vim system.xml



      Notera även värdet på attributet med namn pkcs12Password då vi behöver fylla i det i vår password provider (se nedan)


  4. Kopiera idp-certifikatets konfiguration så att vi får en nyckelgrupp med namnet idpsystem

    1. Kopiera XML-filen idp.xml i katalogen /share/Sakerhetstjanst2.17/local/config/com.logica.se.iac.identity.pkcs12.factory/ till en fil i samma katalog med namnet idpsystem.xml

      Exempel:
      cd /share/Sakerhetstjanst2.17/local/config/com.logica.se.iac.identity.pkcs12.factory/
      sudo cp idp.xml idpsystem.xml

    2. Editera filen idpsystem.xml och byt ut ordet idp på två ställen (attributen pid och name)

      Exempel:
      sudo vim idpsystem.xml



      Notera även värdet på attributet med namn pkcs12Password då vi behöver fylla i det i vår password provider (se nedan). 


  5. Se till att de nya filerna har rätt ägare och rättigheter.

    Exempel:
    cd /share/Sakerhetstjanst2.17/local/config/com.logica.se.iac.identity.pkcs12.factory/
    sudo chown ine-sak:ine-sak *.xml
    sudo chmod g+w *.xml


  6. Lägg till konfiguration för de nya nyckelgrupperna system och idpsystemAdministration → Generell administration → Identity Password Provider

    Alternativt direkt i konfigurationsfilen:
    cd /share/Sakerhetstjanst2.17/local/config/
    sudo vim com.logica.se.iac.identity.passwordprovider.xml



    Det blir i praktiken raderna app och idp som man kopierar till två nya rader
    med system och idpsystem som id:n



  7. Starta om systemet (alla noder) (warning)

    Kontrollera att allt går upp igen med OSGi-kommantot state


  8. Konfigurera Säkerhetstjänster att använda id:t system istället för app under Administration → Generell administration → System Identity Implementation i fältet Identity Name





  9. Konfigurera SP att använda id:t system istället för app under Administration → Generell administration → SP Service Implementation i fältet Selected Key Identity






  10. Konfigurera IdP:n att använda id:t idpsystem istället för idp under Administration → Generell administration → IdP Service Implementation i fältet Selected Key Identity






  11. Lägg till Trust för utgivaren av de nya certifikaten 

    1. Görs genom att lägga upp det Root/CA-certifikat under Administration → Certifikatsutfärdare




    2.  Lägg till utfärdaren i Förtroendekällorna Trust Service och No Check Trust Service under Administration → Webbserver






  12. Eftersom man byter app-certet så kommer sessionen att bli konstig för webbläsaren så det är bäst att göra det under ett servicefönster via konfigurationsfilerna. 
    Nedan visas hur detta görs i senaste versionen av Säkerhetstjänster konfigurerad med SSL-standardport 443. För fler exempel Byte av befintligt certifikat - via konfiguration 


  13. Lägg till det nya certifikatet (eller nya certifikaten) under Administration → Generell administration → Nyckelhantering som temporära id:n för app, idp och secure.idp





    ...så att vi nu har id:n app-tmp, idp-tmp och secure.idp-tmp





  14. Gå till katalogen /share/Sakerhetstjanst2.17/local/config/com.logica.se.iac.identity.pkcs12.factory/.

    Här hittar man nu nya filer som motsvarar de certifikat man nyss lagt till men med slumpat filnamn.
    Dessa ska vi nu modifiera så att de ersätter befintliga filer för app.xml, idp.xml och idp2.xml





  15. Börja med att döpa om de gamla filerna genom att t.ex ge dem filändelsen .bak

    Exempel:
    sudo mv app.xml app.xml.bak
    sudo mv idp.xml idp.xml.bak
    sudo mv idp2.xml idp2.xml.bak



  16. Editera de nyskapade filerna så att id:n nu överensstämmer med de gamla. Som ovan tittar vi på attributen pid och name.

    När det är gjort byter vi det slumpade fil namnet till det gamla filnamnet (1559732051645-0.xml till app.xml)

    FöreEfter


    sudo vim 1559732051645-0.xml

    :
    sudo mv 1559732051645-0.xml app.xml


    sudo vim 1559732213998-1.xml


    sudo mv 1559732213998-1.xml idp.xml


    sudo vim 1559732290485-2.xml


    sudo mv 1559732290485-2.xml idp2.xml

    Nu ska vi ha följande läge:

  17. Vi har säkert nya lösenord för modifierade id:n som vi måste uppdatera i filen com.logica.se.iac.identity.passwordprovider.xml för respektive id.






  18. Gå till katalogen /share/Sakerhetstjanst2.17/local/config/com.logica.se.iac.http.factory/

    Kopiera app.xml till en fil som heter proxy.xml

    Exempel:
    sudo cp app.xml proxy.xml

    Sätt ägare och rättigheter:

    Exempel:
    sudo chown ine-sak:ine-sak proxy.xml
    sudo chmod g+w proxy.xml

    Editera proxy.xml :

    Byt namn på pid och attributet httpServiceId till proxy





  19. Gå till katalogen /share/Sakerhetstjanst2.17/local/config/com.logica.se.iac.http.https.server.factory/

    Kopiera app.xml till en fil som heter proxy.xml

    Exempel:
    sudo cp app.xml proxy.xml

    Sätt ägare och rättigheter:

    Exempel:
    sudo chown ine-sak:ine-sak proxy.xml
    sudo chmod g+w proxy.xml

    Editera proxy.xml :

    Byt namn på pid och attributet httpServiceId till proxy

    Byt bindPort till 8449

    Byt identityName till system

    Byt httpServiceId till proxy
    Detta attribut saknas möjligen. Lägg till det i sådana fall som i kodrutan nedan.

    <Attribute type="String" key="httpServiceId">
        <Value>proxy</Value>
    </Attribute>






  1. Gå till katalogen /share/Sakerhetstjanst2.17/local/config/

    Editera filen com.logica.se.iac.ws.proxy.impl.xml





  2. Starta om systemet (alla noder) (warning)

    Kontrollera state i OSGI-konsolen på alla noder och att allt ser bra ut.


Test

Nedan listas förslag på kontroller för att se att systemet fungerar som tänkt efter certifikatsbytet:

  • Kontrollera systemloggar efter fel som kan visa på certifikatsproblem

  • Kontrollera att Säkerhetstjänster nu presenterar sig med det nya certifikatet i applikationen (även IdP-sidorna)



  • Kontrollera att t.ex Spärrtjänstens GUI kan hämta patientens namn via PU-tjänsten när man söker med avseende på Patient



  • Kontrollera att t.ex Spärrtjänstens GUI kan hämta och lista vårdgivare under Vårdgivarsök



  • Kontrollera med SoapUI att WS-gränssnittet är opåverkat.

Rollback

Om något går fel så ersätter man konfigurationskatalogen som man gjorde en backup av ovan och startar om alla noder.

Exempel
cd /share/Sakerhetstjanst2.17/local/
sudo mv config config_modified
sudo cp -R /var/tmp/certbyte/config .
sudo service sak_server restart (alla noder)






  • No labels