Konfigurując środowisko dla Sitecore Commerce 9 na pojedynczej instancji (np środowisko do testów, lub demo) musisz zadbać o kilka dodatkowych ustawień, tak żeby strona działała z własną domeną. Spróbuję opisać tutaj co trzeba zmienić w konfiguracji XC zainstalowanej na maszynie wirtualnej w Azure. Podobne ustawienia obowiązują także na własnym serwerze.
Nazwy hostów w plikach konfiguracyjnych
- Aplikacja Business Tools: Ustaw EngineUri, IdentityServerUri i BizFxUri w pliku SitecoreBizFx\assets\config.json:
1 2 3 4 5 6 7 8 9 10 11 |
{ "EnvironmentName": "HabitatAuthoring", "EngineUri": "https://hostname.westeurope.cloudapp.azure.com:5000", "IdentityServerUri": "https://hostname.westeurope.cloudapp.azure.com:5050", "BizFxUri": "https://hostname.westeurope.cloudapp.azure.com:4200", "Language": "en", "Currency": "USD", "ShopName": "CommerceEngineDefaultStorefront", "LanguageCookieName": "selectedLanguage", "EnvironmentCookieName": "selectedEnvironment" } |
- Aplikacja Identity Server: Ustaw AppSettings\Clients\RedirectUris (możesz dodać też cały wpis) w pliku SitecoreIdentityServer\wwwroot\appsettings.json:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
... "Clients": [ { "ClientId": "CommerceBusinessTools", "ClientName": "CommerceBusinessTools", "AccessTokenType": 0, "AccessTokenLifetimeInSeconds": 3600, "IdentityTokenLifetimeInSeconds": 3600, "AllowAccessTokensViaBrowser": true, "RequireConsent": false, "RequireClientSecret": false, "AllowedGrantTypes": [ "implicit" ], "RedirectUris": [ "http://hostname.westeurope.cloudapp.azure.com:4200", "http://hostname.westeurope.cloudapp.azure.com:4200/?", "https://hostname.westeurope.cloudapp.azure.com:4200", "https://hostname.westeurope.cloudapp.azure.com:4200/?" ], "PostLogoutRedirectUris": [ "http://hostname.westeurope.cloudapp.azure.com:4200", "http://hostname.westeurope.cloudapp.azure.com:4200/?", "https://hostname.westeurope.cloudapp.azure.com:4200", "https://hostname.westeurope.cloudapp.azure.com:4200/?" ], "AllowedCorsOrigins": [ "http://hostname.westeurope.cloudapp.azure.com:4200/", "http://hostname.westeurope.cloudapp.azure.com:4200", "https://hostname.westeurope.cloudapp.azure.com:4200/", "https://hostname.westeurope.cloudapp.azure.com:4200" ], "AllowedScopes": [ "openid", "dataEventRecords", "dataeventrecordsscope", "securedFiles", "securedfilesscope", "role", "EngineAPI" ] } ... |
- Dla wszystkich ról Commerce Engine ustaw AppSettings\SitecoreIdentityServerUrl i AllowedOrigins w pliku {CommerceAuthoring/Ops/Minions/Shops}\wwwroot\config.json:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
... "AppSettings": { "SiteTitle": "Sitecore Commerce Engine", "BootStrapFile": "Global", "DeploymentId": "Deployment01", "EnvironmentName": "HabitatShops", "EncryptionProtectionType": "Machine", "EncryptionCertificateHash": "Enter a valid certificate thumbprint for a PXF file. X-509 not supported yet", "EncryptionSID": "Enter a valid SID for a domain registered user", "EncryptionKeyStorageLocation": "c:\\Encryption-Keys\\", "SitecoreIdentityServerUrl": "https://hostname.westeurope.cloudapp.azure.com:5050", "AllowedOrigins": [ "https://hostname.westeurope.cloudapp.azure.com", "https://hostname.westeurope.cloudapp.azure.com:4200" ], "AntiForgeryEnabled": false, "UseHttpsInKestrel": true, "SslPort": 5000, "SslPfxPath": "wwwroot/localhost.pfx", "SslPfxPassword": "sitecore" } ... |
- Dla wszystkich ról Commerce Engine ustaw Policies\$values\Host w {CommerceAuthoring/Ops/Minions/Shops}\wwwroot\data\Environments\PlugIn.Content.PolicySet-1.0.0.json:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
{ "$type": "Sitecore.Commerce.Core.PolicySet, Sitecore.Commerce.Core", "Id": "Entity-PolicySet-ContentPolicySet", "Version": 1, "IsPersisted": false, "Name": "ContentPolicySet", "Policies": { "$type": "System.Collections.Generic.List`1[[Sitecore.Commerce.Core.Policy, Sitecore.Commerce.Core]], mscorlib", "$values": [ { "$type": "Sitecore.Commerce.Plugin.Management.SitecoreConnectionPolicy, Sitecore.Commerce.Plugin.Management", "Host": "hostname.westeurope.cloudapp.azure.com", "SitecoreDatabase": "master", "UserName": "admin", "Domain": "sitecore", "Password": "b", "ConnectionLeaseTimeout": 60000, "AuthRequestUrl": "sitecore/api/ssc/auth/login", "Protocol": "https" }, { "$type": "Sitecore.Commerce.Plugin.Content.DefaultContentPathsPolicy, Sitecore.Commerce.Plugin.Content", "ContentPaths": { "$type": "System.Collections.Generic.List`1[[System.String, mscorlib]], mscorlib", "$values": [ "/sitecore/Commerce/Commerce Control Panel" ] } } ] } } |
Certyfikaty w plikach konfiguracyjnych
- Dla wszystkich ról Commerce Engine ustaw thumbprint strony storfront w Certificates\Certificates\Thumbprint (możesz też dodać cały wpis) w pliku {CommerceAuthoring/Ops/Minions/Shops}\wwwroot\config.json:
1 2 3 4 5 6 7 8 9 |
"Certificates": { "Certificates": [ { "Thumbprint": "76879429EB10AC4B44F5EFEEB8F338D3C484563D", "DefaultRoles": [ "sitecore\\QA", "sitecore\\Commerce Business User" ] } ], "CertificateHeaderName": "X-CommerceEngineCert" } |
Aby uzyskać thumbprint certyfikatu, użyj skryptu PowerShell Get-ChildItem -path cert:\LocalMachine\My
i skopiuj wartość dla certyfikatów użytych na stronie.
Commerce Business Tools w Launchpad
Na bazie core ustaw wartość pola Link w itemie /sitecore/client/Applications/Launchpad/PageSettings/Buttons/Commerce/BusinessTools
:
Nazwa hosta Storefront
Na bazie master zmień wartość pola Host Name w itemie /sitecore/content/{Sites}/{Site}/Settings/Site Grouping/{Site}
:
Nazwy hostów w IIS
Skonfiguruj IIS bindings, numer portu i wybierz odpowiedni certyfikat SSL dla:
- strony Sitecore (storefront):
- Commerce business tools (BizFx):
- Identity Server:
- Commerce authoring service:
Ustawienie lokalnego firewall’a
Dodaj regułę dla połączeń przychodzących dla portów 4200, 5000, 5050 w ustawieniach firewalla na VM:
Ustawienie firewall’a w Azure Portal
Dodaj regułę dla połączeń przychodzących dla portów 4200, 5000, 5050 (oraz dla 80 i 443 jeśli ich brakuje) w ustawieniach Networking maszyny wirtualnej w Azure Portal: