Skip to content

Commit 2d7696f

Browse files
Update service troubleshooting docs
1 parent 47f6bb7 commit 2d7696f

File tree

3 files changed

+29
-13
lines changed

3 files changed

+29
-13
lines changed

docs/backgroundservice.md

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,22 +13,26 @@ By default the background service runs a local http API server on port 9696 for
1313

1414
## Custom configuration and Troubleshooting "..service not started" error
1515

16-
The certify background service operates a local API for the app on port `9696` by default. If this port is in use by another application/service (or for some other reason it cannot create a binding to `localhost:9696`, or a security product is preventing **local** port access) then you will see the message 'Service not started'.
16+
The certify background service operates a local API for the app on port `9696` by default. If this port is in use by another application/service (or for some other reason it cannot create a binding to `127.0.0.2:9696` (localhost), or a security product is preventing **local** port access) then you will see the message 'Service not started'.
17+
18+
- `servers.json` : This is the connection information used by the UI to connect to the background service.
19+
- `serviceconfig.json` : These are the service settings and includes the host/ip and port the service will listen on, so it needs to match the details in `servers.json`.
1720

1821
:::info
19-
If you are repeatedly seeing the "Service Not Started" error, first try deleting `serviceconfig.json` and `servers.json` from C:\ProgramData\Certify\ then restart the background service and the app. This can help if automatic port negotiation has gotten out of sync.
22+
If you are repeatedly seeing the "Service Not Started" error, first try deleting `serviceconfig.json` and `servers.json` from C:\ProgramData\Certify\ then restart the background service and the app and these config files will be recreated. This can help if automatic port negotiation has gotten out of sync.
2023

2124
In some cases antivirus software products (such as *ClamWin*, *Watchguard Advanced EPDR*, *ESET*) have been known to prevent the Certify servicing installing properly or prevent some core features working like our temporary http challenge service listener.
2225
:::
2326

24-
If the default port 9696 is already in use however you can manually specify the settings required by editing/adding the file `c:\programdata\certify\serviceconfig.json` with content as per the following (adjusted as required) then restarting both the service and UI:
27+
If the default port 9696 is already in use however you can manually specify the settings required by editing/adding the file `c:\programdata\certify\serviceconfig.json` (and servers.json) with content as per the following (adjusted as required) then restarting both the service and UI:
2528

2629
```json
2730
{
2831
"host": "localhost",
2932
"port": 9696
3033
}
3134
```
35+
Any local IP (or `localhost`) can be used, local loopback addresses are strongly recommended so that remote access is not possible.
3236

3337
For example an alternative configuration might be:
3438

@@ -56,12 +60,14 @@ To operate properly the background service needs to be able to register an http
5660

5761
### Allow Local System account to bind an http listener to the service port
5862

59-
In some cases you need to explicitly allow the service to listen as an http service on the localhost IP address. To Do so run the following command from the command line as an Administrator:
63+
In some cases you need to explicitly allow the service to listen as an http service on the localhost IP address. To do so run the following command from the command line as an Administrator, substituting your choice of listening IP address and port:
6064

6165
`netsh http add urlacl url=http://127.0.0.1:9696/ user="NT AUTHORITY\SYSTEM"`
6266

6367
### Enable http listener IP address
6468

69+
If your system is restricting which IP addresses can listen for HTTP traffic you may find you need to enable iplisten for the service IP.
70+
6571
As per https://docs.microsoft.com/en-us/windows/win32/http/add-iplisten enable any IPv4 address to listen for http. :
6672

6773
```bat
@@ -73,10 +79,10 @@ netsh http add iplisten ipaddress=::
7379
```
7480

7581

76-
Or to target a specific IP address such as 127.0.0.1 (localhost):
82+
**Or to target a specific IP address such as 127.0.0.2 (our default local loopback IP setting)**:
7783

7884
```bat
79-
netsh http add iplisten ipaddress=127.0.0.1
85+
netsh http add iplisten ipaddress=127.0.0.2
8086
```
8187
You should monitor other effects on other services when changing the IP listen configuration. We have seen one report of Exchange/Outlook slowing down when the 0.0.0.0 address iplisten is enabled.
8288

docs/guides/troubleshooting.md

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,9 @@ id: troubleshooting
33
title: Troubleshooting
44
---
55

6+
## If the UI shows a "Service Not Started" message.
7+
If you see this type of error reported by the UI, see [Background Service](../backgroundservice.md) for more troubleshooting information.
8+
69
## Issues communicating with the CA
710
In normal use the app must be able to talk to the ACME API for your chosen Certificate Authority (e.g. Let's Encrypt). If you see an error reported such as `The ACME service (directory) is unavailable.` this would indicate your machine is not able to establish communication with the CA service.
811

@@ -22,5 +25,12 @@ If the above test works OK then next thing would be to determine if the CA is re
2225

2326
You can use tools such as Telerik Fiddler to see the https conversation between your machine and the CAs API but you can also try enabling Debug logging in the app. To do so, edit `C:\ProgramData\certify\serviceconfig.json` and set the `"LogLevel"` field to `"debug"` instead of `"information"`, then restart the Certify background service and attempt your request again (just click "Request Certificate" on a managed certificate). The `C:\ProgramData\certify\logs\session*.log` file will then include the actual http conversation between you and the CA and you can use this to see if the CA is returning an error that the app is unable to interpret, or if the connection is simply not operating normally.
2427

25-
# Alternative Solutions
26-
Occasionally you may be unable or unwilling to resolve the connectivity issue with the CA system. In this case we would suggest the next thing to try is to [use a different CA](certificate-authorities.md). You can try this for a single managed certificate and if that works change your default CA over to the new preferred CA.
28+
### Alternative Solutions
29+
Occasionally you may be unable or unwilling to resolve the connectivity issue with the CA system. In this case we would suggest the next thing to try is to [use a different CA](certificate-authorities.md). You can try this for a single managed certificate and if that works change your default CA over to the new preferred CA.
30+
31+
# Domain Validation Issues Causing Failed Renewal
32+
## HTTP domain validations suddenly failing
33+
If you find you are unexpectedly getting HTTP domain validation failures (particularly "Secondary validation") the most common cause is a Firewall blocking TCP port 80 (http) or you are blocking a range of IP or Geographic locations. To allow only your CAs HTTP validation requests through we recommend using a Web Application Firewall set to allow all http requests to any path starting with `/.well-known/acme-challenge/`. Alternatively block specific countries instead of blocking all countries, as your CA (the default being Let's Encrypt) may choose to validate from any geographic region.
34+
35+
## DNS domain validations suddenly failing
36+
DNS providers can and do change their APIs periodically which can impact renewals using DNS validation. For instance, GoDaddy changed their API to only allow API use for customers with more than 10 domains. Other DNS providers have retired their older APIs resulting in renewals that use those failing. We recommend that if a problem develops with DNS validation that you ensure you are using the latest version of the app and if the problem persists contact your DNS provider to ask if their API has recently changed.

package.json

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,17 +15,17 @@
1515
"dev": "docusaurus start"
1616
},
1717
"dependencies": {
18-
"@docusaurus/core": "3.3.2",
19-
"@docusaurus/preset-classic": "3.3.2",
20-
"@docusaurus/theme-mermaid": "3.3.2",
18+
"@docusaurus/core": "3.4.0",
19+
"@docusaurus/preset-classic": "3.4.0",
20+
"@docusaurus/theme-mermaid": "3.4.0",
2121
"@mdx-js/react": "^3.0.1",
2222
"prism-react-renderer": "2.3.1",
2323
"react": "^18.2.0",
2424
"react-dom": "^18.2.0"
2525
},
2626
"devDependencies": {
27-
"@docusaurus/module-type-aliases": "3.3.2",
28-
"@docusaurus/tsconfig": "3.3.2",
27+
"@docusaurus/module-type-aliases": "3.4.0",
28+
"@docusaurus/tsconfig": "3.4.0",
2929
"@types/react": "18.2.48",
3030
"typescript": "5.2.2"
3131
},

0 commit comments

Comments
 (0)