Setup HTTPS using Let's Encrypt

Let's Encrypt is a free CA providing a simple way for you to secure your Zpider eShop.

Guide for setting up Let's Encrypt with Zpider v11.2 and onwards.

  1. Download the Let's Encrypt ACME client from https://github.com/PKISharp/win-acme/releases
  2. Extract it to a place that makes sense (like c:\wacs)
  3. Ensure that both port 80 and 443 is open from the internet
  4. Ensure that you've set a custom domain on the site in IIS
  5. Execute win-acme.exe from wherever you extracted it
  6. Follow the instructions from win-acme.
  7. Verify that HTTPS works on your site.
  8. Update <UseHttps>false</UseHttps> to <UseHttps>true</UseHttps> in eShop.custom.config.
  9. Use IISCrypto from Nartac to disable insecure protocols and ciphers.

Guide for Zpider eShop pre v11.2

  1. Download the Let's Encrypt ACME client from https://github.com/PKISharp/win-acme/releases
  2. Extract it to a place that makes sense (like c:\wacs)
  3. Ensure that both port 80 and 443 is open from the internet
  4. Ensure that you've set a custom domain on the site in IIS
  5. Execute win-acme.exe from wherever you extracted it
  6. Select the site you'd like to add https to
  7. Update <Urls> in custom.config and add https
  8. Use IISCrypto from Nartac to disable insecure protocols and ciphers.
  9. Update <Pages> with the following
<Pages>
<Page Name="AddMenuentry" UseHttps="true" Enabled="true">
<IncludeModules>
<IncludeModule Module="ADDMENUENTRY" Enabled="true">
<Props />
</IncludeModule>
</IncludeModules>
</Page>
<Page Name="AddToShoppingList" UseHttps="true" Enabled="true">
<IncludeModules>
<IncludeModule Module="ADDTOSHOPPINGLIST" Enabled="true">
<Props />
</IncludeModule>
</IncludeModules>
</Page>
<Page Name="Article" UseHttps="true" Enabled="true">
<Description>Displays article details</Description>
<IncludeModules>
<IncludeModule Module="ARTICLE" Enabled="true">
<Props />
</IncludeModule>
</IncludeModules>
</Page>
<Page Name="ArticleList" UseHttps="true" Enabled="true">
<IncludeModules>
<IncludeModule Module="ARTICLELIST" Enabled="true">
<Props />
</IncludeModule>
</IncludeModules>
</Page>
<Page Name="ArticleCompare" UseHttps="true" Enabled="true">
<IncludeModules>
<IncludeModule Module="ARTICLECOMPARE" Enabled="true">
<Props />
</IncludeModule>
</IncludeModules>
</Page>
<Page Name="AttestCart" UseHttps="true" Enabled="true">
<IncludeModules>
<IncludeModule Module="ATTESTCART" Enabled="true">
<Props />
</IncludeModule>
</IncludeModules>
</Page>
<Page Name="AttestList" UseHttps="true" Enabled="true">
<IncludeModules>
<IncludeModule Module="ATTESTLIST" Enabled="true">
<Props />
</IncludeModule>
</IncludeModules>
</Page>
<Page Name="Banner" UseHttps="true" Enabled="true">
<Description>The banner page frame</Description>
<IncludeModules>
<IncludeModule Module="BANNER" Enabled="true">
<Props />
</IncludeModule>
</IncludeModules>
</Page>
<Page Name="CompanyAbout" UseHttps="true" Enabled="true">
<Description>Display info about the company</Description>
<IncludeModules>
<IncludeModule Module="CompanyAbout" Enabled="true">
<Props />
</IncludeModule>
</IncludeModules>
</Page>
<Page Name="CompanyDeliveryTerms" UseHttps="true" Enabled="true">
<Description>Display info about the delivery terms for the company</Description>
<IncludeModules>
<IncludeModule Module="CompanyDeliveryTerms" Enabled="true">
<Props />
</IncludeModule>
</IncludeModules>
</Page>
<Page Name="CompanyPaymentTerms" UseHttps="true" Enabled="true">
<Description>Display info about the payment terms for the company</Description>
<IncludeModules>
<IncludeModule Module="CompanyPaymentTerms" Enabled="true">
<Props />
</IncludeModule>
</IncludeModules>
</Page>
<Page Name="CompanyProfile" UseHttps="true" Enabled="true">
<IncludeModules>
<IncludeModule Module="COMPANYPROFILE" Enabled="true">
<Props />
</IncludeModule>
</IncludeModules>
</Page>
<Page Name="CompanyReturnTerms" UseHttps="true" Enabled="true">
<Description>Display info about the return terms for the company</Description>
<IncludeModules>
<IncludeModule Module="CompanyReturnTerms" Enabled="true">
<Props />
</IncludeModule>
</IncludeModules>
</Page>
<Page Name="Contactprofile" UseHttps="true" Enabled="true">
<IncludeModules>
<IncludeModule Module="CONTACTPROFILE" Enabled="true">
<Props />
</IncludeModule>
</IncludeModules>
</Page>
<Page Name="Documentdetails" UseHttps="true" Enabled="true">
<IncludeModules>
<IncludeModule Module="DOCUMENTDETAILS" Enabled="true">
<Props />
</IncludeModule>
</IncludeModules>
</Page>
<Page Name="Documentlist" UseHttps="true" Enabled="true">
<Description>Searching for and listing documents</Description>
<IncludeModules>
<IncludeModule Module="DOCUMENTLIST" Enabled="true">
<Props />
</IncludeModule>
</IncludeModules>
</Page>
<Page Name="ErpOrderHistory" UseHttps="true" Enabled="true">
<IncludeModules>
<IncludeModule Module="ERPORDERHISTORY" Enabled="true">
<Props />
</IncludeModule>
</IncludeModules>
</Page>
<Page Name="ErpOrderlist" UseHttps="true" Enabled="true">
<IncludeModules>
<IncludeModule Module="ERPORDERLIST" Enabled="true">
<Props />
</IncludeModule>
</IncludeModules>
</Page>
<Page Name="ErpOrderstatus" UseHttps="true" Enabled="true">
<IncludeModules>
<IncludeModule Module="ERPORDERSTATUS" Enabled="true">
<Props />
</IncludeModule>
</IncludeModules>
</Page>
<Page Name="FirstPage_ShowWindow" UseHttps="true" Enabled="true">
<IncludeModules>
<IncludeModule Module="FIRSTPAGESHOWWINDOW" Enabled="true">
<Props />
</IncludeModule>
</IncludeModules>
</Page>
<Page Name="ForgottenPass" UseHttps="true" Enabled="true">
<IncludeModules>
<IncludeModule Module="FORGOTTENPASS" Enabled="true">
<Props />
</IncludeModule>
</IncludeModules>
</Page>
<Page Name="ForgottenPassA" UseHttps="true" Enabled="true">
<IncludeModules>
<IncludeModule Module="FORGOTTENPASSA" Enabled="true">
<Props />
</IncludeModule>
</IncludeModules>
</Page>
<Page Name="Front" UseHttps="true" Enabled="true">
<IncludeModules>
<IncludeModule Module="FRONT" Enabled="true">
<Props />
</IncludeModule>
</IncludeModules>
</Page>
<Page Name="Grouplistbox" UseHttps="true" Enabled="true">
<Description>The Grouplistbox (left tree structured productgroups and menu)</Description>
<IncludeModules>
<IncludeModule Module="GROUPLISTBOX" Enabled="true">
<Props />
</IncludeModule>
</IncludeModules>
</Page>
<Page Name="Help" UseHttps="true" Enabled="true">
<IncludeModules>
<IncludeModule Module="HELP" Enabled="true">
<Props />
</IncludeModule>
</IncludeModules>
</Page>
<Page Name="Infolist" UseHttps="true" Enabled="true">
<IncludeModules>
<IncludeModule Module="INFOLIST" Enabled="true">
<Props />
</IncludeModule>
</IncludeModules>
</Page>
<Page Name="InfolistBox" UseHttps="true" Enabled="true">
<Description>The InfolistBox page frame</Description>
<IncludeModules>
<IncludeModule Module="INFOLISTBOX" Enabled="true">
<Props />
</IncludeModule>
</IncludeModules>
</Page>
<Page Name="Login" UseHttps="true" Enabled="true">
<Description>The login page</Description>
<IncludeModules>
<IncludeModule Module="Login" Enabled="true">
<Props />
</IncludeModule>
</IncludeModules>
</Page>
<Page Name="LoginProfile" UseHttps="true" Enabled="true">
<Description>The login profile page</Description>
<IncludeModules>
<IncludeModule Module="LoginProfile" Enabled="true">
<Props />
</IncludeModule>
</IncludeModules>
</Page>
<Page Name="ChainCustomer" UseHttps="true" Enabled="true">
<Description>The login for chained customers page</Description>
<IncludeModules>
<IncludeModule Module="ChainCustomer" Enabled="true">
<Props />
</IncludeModule>
</IncludeModules>
</Page>
<Page Name="Logout" UseHttps="true" Enabled="true">
<Description>The logout page</Description>
<IncludeModules>
<IncludeModule Module="Logout" Enabled="true">
<Props />
</IncludeModule>
</IncludeModules>
</Page>
<Page Name="Main" UseHttps="true" Enabled="true">
<Description>The main page</Description>
<IncludeModules>
<IncludeModule Module="MAIN_PROMO" Enabled="true">
<Props />
</IncludeModule>
</IncludeModules>
</Page>
<Page Name="Main_FirstPage" UseHttps="true" Enabled="true">
<Description>The main firstpage frameset</Description>
<IncludeModules>
<IncludeModule Module="MAIN_FIRSTPAGE" Enabled="true">
<Props />
</IncludeModule>
</IncludeModules>
</Page>
<Page Name="NewcontactProfile" UseHttps="true" Enabled="true">
<IncludeModules>
<IncludeModule Module="NEWCONTACTPROFILE" Enabled="true">
<Props />
</IncludeModule>
</IncludeModules>
</Page>
<Page Name="NewUser" UseHttps="true" Enabled="true">
<IncludeModules>
<IncludeModule Module="NEWUSER" Enabled="true">
<Props />
</IncludeModule>
</IncludeModules>
</Page>
<Page Name="NewUserFront" UseHttps="true" Enabled="true">
<IncludeModules>
<IncludeModule Module="NEWUSERFRONT" Enabled="true">
<Props />
</IncludeModule>
</IncludeModules>
</Page>
<Page Name="Orderhistory" UseHttps="true" Enabled="true">
<IncludeModules>
<IncludeModule Module="ORDERHISTORY" Enabled="true">
<Props />
</IncludeModule>
</IncludeModules>
</Page>
<Page Name="Orderstatus" UseHttps="true" Enabled="true">
<IncludeModules>
<IncludeModule Module="ORDERSTATUS" Enabled="true">
<Props />
</IncludeModule>
</IncludeModules>
</Page>
<Page Name="Orderstep1" UseHttps="true" Enabled="true">
<IncludeModules>
<IncludeModule Module="ORDERSTEP1" Enabled="true">
<Props />
</IncludeModule>
</IncludeModules>
</Page>
<Page Name="Orderstep1A" UseHttps="true" Enabled="true">
<IncludeModules>
<IncludeModule Module="ORDERSTEP1A" Enabled="true">
<Props />
</IncludeModule>
</IncludeModules>
</Page>
<Page Name="Orderstep1B" UseHttps="true" Enabled="true">
<IncludeModules>
<IncludeModule Module="ORDERSTEP1B" Enabled="true">
<Props />
</IncludeModule>
</IncludeModules>
</Page>
<Page Name="Orderstep2" UseHttps="true" Enabled="true">
<IncludeModules>
<IncludeModule Module="ORDERSTEP2" Enabled="true">
<Props />
</IncludeModule>
</IncludeModules>
</Page>
<Page Name="Orderstep3" UseHttps="true" Enabled="true">
<IncludeModules>
<IncludeModule Module="ORDERSTEP3" Enabled="true">
<Props />
</IncludeModule>
</IncludeModules>
</Page>
<Page Name="PurchaseCart" UseHttps="true" Enabled="true">
<IncludeModules>
<IncludeModule Module="PURCHASECART" Enabled="true">
<Props />
</IncludeModule>
</IncludeModules>
</Page>
<Page Name="PurchaseList" UseHttps="true" Enabled="true">
<IncludeModules>
<IncludeModule Module="PURCHASELIST" Enabled="true">
<Props />
</IncludeModule>
</IncludeModules>
</Page>
<Page Name="Purchaselist_Frontpage" UseHttps="true" Enabled="true">
<Description>The purchaselist frontpage frame</Description>
<IncludeModules>
<IncludeModule Module="PURCHASELIST_FRONTPAGE" Enabled="true">
<Props />
</IncludeModule>
</IncludeModules>
</Page>
<Page Name="Quickorder" UseHttps="true" Enabled="true">
<IncludeModules>
<IncludeModule Module="QUICKORDER" Enabled="true">
<Props />
</IncludeModule>
</IncludeModules>
</Page>
<Page Name="RemoveContactProfile" UseHttps="true" Enabled="true">
<IncludeModules>
<IncludeModule Module="REMOVECONTACTPROFILE" Enabled="true">
<Props />
</IncludeModule>
</IncludeModules>
</Page>
<Page Name="SaveAsPurchase" UseHttps="true" Enabled="true">
<IncludeModules>
<IncludeModule Module="SAVEASPURCHASE" Enabled="true">
<Props />
</IncludeModule>
</IncludeModules>
</Page>
<Page Name="SavePurchase" UseHttps="true" Enabled="true">
<Description>Saves the shopping list</Description>
<IncludeModules>
<IncludeModule Module="SAVEASPURCHASE" Enabled="true">
<Props />
</IncludeModule>
</IncludeModules>
</Page>
<Page Name="Search" UseHttps="true" Enabled="true">
<Description>The search frame within the Shoparea frameset</Description>
<IncludeModules>
<IncludeModule Module="SEARCH" Enabled="true">
<Props />
</IncludeModule>
</IncludeModules>
</Page>
<Page Name="Shoparea" UseHttps="true" Enabled="true">
<Description>The shoparea frameset</Description>
<IncludeModules>
<IncludeModule Module="SHOPAREA" Enabled="true">
<Props />
</IncludeModule>
</IncludeModules>
</Page>
<Page Name="ShoppingCart" UseHttps="true" Enabled="true">
<Description>The shoppingcart frame on the left side within the Shoparea frameset</Description>
<IncludeModules>
<IncludeModule Module="SHOPPINGCART" Enabled="true">
<Props />
</IncludeModule>
</IncludeModules>
</Page>
<Page Name="ShoppingCartDetails" UseHttps="true" Enabled="true">
<Description>The shoppingcart details page. This page is launched when clicking [To Shopping Cart] button</Description>
<IncludeModules>
<IncludeModule Module="SHOPPINGCARTDETAILS" Enabled="true">
<Props />
</IncludeModule>
</IncludeModules>
</Page>
<Page Name="ShoppingList" UseHttps="true" Enabled="true">
<IncludeModules>
<IncludeModule Module="SHOPPINGLIST" Enabled="true">
<Props />
</IncludeModule>
</IncludeModules>
</Page>
<Page Name="Top" UseHttps="true" Enabled="true">
<Description>The top page frame</Description>
<IncludeModules>
<IncludeModule Module="TOP" Enabled="true">
<Props />
</IncludeModule>
</IncludeModules>
</Page>
<Page Name="UnsafeRequest" UseHttps="true" Enabled="true">
<IncludeModules>
<IncludeModule Module="UNSAFEREQUEST" Enabled="true">
<Props />
</IncludeModule>
</IncludeModules>
</Page>
<Page Name="UpdateAddToShoppingList" UseHttps="true" Enabled="true">
<IncludeModules>
<IncludeModule Module="UPDATEADDTOSHOPPINGLIST" Enabled="true">
<Props />
</IncludeModule>
</IncludeModules>
</Page>
<Page Name="UpdateCompanyProfile" UseHttps="true" Enabled="true">
<IncludeModules>
<IncludeModule Module="UPDATECOMPANYPROFILE" Enabled="true">
<Props />
</IncludeModule>
</IncludeModules>
</Page>
<Page Name="UpdateContactProfile" UseHttps="true" Enabled="true">
<IncludeModules>
<IncludeModule Module="UPDATECONTACTPROFILE" Enabled="true">
<Props />
</IncludeModule>
</IncludeModules>
</Page>
<Page Name="UpdateNewUser" UseHttps="true" Enabled="true">
<IncludeModules>
<IncludeModule Module="UPDATENEWUSER" Enabled="true">
<Props />
</IncludeModule>
</IncludeModules>
</Page>
<Page Name="UpdateUserProfile" UseHttps="true" Enabled="true">
<IncludeModules>
<IncludeModule Module="UPDATEUSERPROFILE" Enabled="true">
<Props />
</IncludeModule>
</IncludeModules>
</Page>
<Page Name="UserProfile" UseHttps="true" Enabled="true">
<IncludeModules>
<IncludeModule Module="USERPROFILE" Enabled="true">
<Props />
</IncludeModule>
</IncludeModules>
</Page>
</Pages>