@@ -46,6 +46,7 @@ Configuration is managed through environment variables:
4646- ` BITGO_CUSTOM_BITCOIN_NETWORK ` - Custom Bitcoin network (optional)
4747- ` ADVANCED_WALLET_MANAGER_URL ` - Advanced Wallet Manager URL (required)
4848- ` ADVANCED_WALLET_MANAGER_CERT ` - Path to Advanced Wallet Manager certificate (required)
49+ - ` AWM_SERVER_CERT_ALLOW_SELF_SIGNED ` - Allow self-signed certificates from Advanced Wallet Manager (default: false)
4950
5051### TLS/mTLS Configuration
5152
@@ -70,15 +71,16 @@ Both modes use the same TLS configuration variables:
7071#### mTLS Settings (when TLS_MODE=mtls)
7172
7273- ` MTLS_REQUEST_CERT ` - Request client certificates (default: true)
73- - ` ALLOW_SELF_SIGNED ` - Allow self-signed certificates (default: false)
74- - ` MTLS_ALLOWED_CLIENT_FINGERPRINTS ` - Comma-separated list of allowed client certificate fingerprints (optional)
74+ - ` CLIENT_CERT_ALLOW_SELF_SIGNED ` - Allow self-signed certificates for incoming client connections (default: false)
75+ - ` MTLS_ALLOWED_CLIENT_FINGERPRINTS ` - Comma-separated list of allowed fingerprints for incoming client connections (optional)
7576
7677#### Outbound mTLS to KMS
7778
7879- When ` TLS_MODE=mtls ` , outbound mTLS to KMS is enabled by default.
7980- The same ` TLS_CERT ` and ` TLS_KEY ` are used as the client certificate and key for outbound mTLS requests to KMS.
8081- ` KMS_TLS_CERT_PATH ` - Path to the CA certificate to verify the KMS server (required when outbound mTLS is enabled).
8182- If ` TLS_MODE=disabled ` , outbound mTLS to KMS is also disabled by default.
83+ - ` KMS_SERVER_CERT_ALLOW_SELF_SIGNED ` - Allow self-signed certificates from the KMS (default: false)
8284
8385> ** Note:** If you want to use a different client certificate for KMS, you will need to extend the configuration. By default, the same cert/key is used for both inbound and outbound mTLS.
8486
@@ -105,10 +107,11 @@ openssl req -new -x509 -key server.key -out server.crt -days 365 -subj "/CN=loca
105107``` bash
106108export APP_MODE=advanced-wallet-manager
107109export KMS_URL=https://your-kms-service
110+ export KMS_TLS_CERT_PATH=./server.crt
111+ export KMS_SERVER_CERT_ALLOW_SELF_SIGNED=true
108112export TLS_KEY_PATH=./server.key
109113export TLS_CERT_PATH=./server.crt
110- export MTLS_REQUEST_CERT=true
111- export ALLOW_SELF_SIGNED=true
114+ export CLIENT_CERT_ALLOW_SELF_SIGNED=true
112115npm start
113116```
114117
@@ -123,8 +126,8 @@ export TLS_KEY_PATH=./server.key
123126export TLS_CERT_PATH=./server.crt
124127export ADVANCED_WALLET_MANAGER_URL=https://localhost:3080
125128export ADVANCED_WALLET_MANAGER_CERT=./server.crt
126- export MTLS_REQUEST_CERT=false
127- export ALLOW_SELF_SIGNED =true
129+ export AWM_SERVER_CERT_ALLOW_SELF_SIGNED=true
130+ export CLIENT_CERT_ALLOW_SELF_SIGNED =true
128131npm start
129132```
130133
@@ -141,7 +144,7 @@ curl -k -X POST https://localhost:3081/ping/advancedWalletManager
141144### Security Best Practices
142145
1431461 . ** Use CA-signed certificates** instead of self-signed
144- 2 . ** Set ` ALLOW_SELF_SIGNED =false` ** in production
147+ 2 . ** Set ` CLIENT_CERT_ALLOW_SELF_SIGNED =false` ** in production
1451483 . ** Configure client certificate allowlisting** with ` MTLS_ALLOWED_CLIENT_FINGERPRINTS `
1461494 . ** Use separate certificates** for each service
1471505 . ** Regularly rotate certificates**
@@ -157,7 +160,7 @@ export KMS_URL=https://production-kms.example.com
157160export TLS_KEY_PATH=/secure/path/advanced-wallet-manager.key
158161export TLS_CERT_PATH=/secure/path/advanced-wallet-manager.crt
159162export MTLS_REQUEST_CERT=true
160- export ALLOW_SELF_SIGNED =false
163+ export CLIENT_CERT_ALLOW_SELF_SIGNED =false
161164export MTLS_ALLOWED_CLIENT_FINGERPRINTS=ABC123...,DEF456...
162165npm start
163166```
@@ -172,7 +175,7 @@ export TLS_CERT_PATH=/secure/path/master.crt
172175export ADVANCED_WALLET_MANAGER_URL=https://advanced-wallet-manager.internal.example.com:3080
173176export ADVANCED_WALLET_MANAGER_CERT=/secure/path/advanced-wallet-manager.crt
174177export MTLS_REQUEST_CERT=true
175- export ALLOW_SELF_SIGNED =false
178+ export CLIENT_CERT_ALLOW_SELF_SIGNED =false
176179npm start
177180```
178181
@@ -202,7 +205,7 @@ podman run -d \
202205 -e TLS_CERT_PATH=/app/certs/advanced-wallet-manager-cert.pem \
203206 -e KMS_URL=host.containers.internal:3000 \
204207 -e NODE_ENV=development \
205- -e ALLOW_SELF_SIGNED =true \
208+ -e CLIENT_CERT_ALLOW_SELF_SIGNED =true \
206209 bitgo-onprem-express
207210
208211# View logs
@@ -222,7 +225,7 @@ podman run -d \
222225 -e TLS_CERT_PATH=/app/certs/test-ssl-cert.pem \
223226 -e ADVANCED_WALLET_MANAGER_URL=https://host.containers.internal:3080 \
224227 -e ADVANCED_WALLET_MANAGER_CERT=/app/certs/advanced-wallet-manager-cert.pem \
225- -e ALLOW_SELF_SIGNED =true \
228+ -e CLIENT_CERT_ALLOW_SELF_SIGNED =true \
226229 bitgo-onprem-express
227230
228231# View logs
@@ -276,7 +279,7 @@ openssl x509 -in certificate.crt -text -noout
276279#### 2. mTLS Authentication Failures
277280
278281- Verify client certificates are provided
279- - Check ` ALLOW_SELF_SIGNED ` setting matches certificate type
282+ - Check ` CLIENT_CERT_ALLOW_SELF_SIGNED ` setting matches certificate type
280283- Confirm client certificate fingerprints are in allowlist
281284- Ensure both services use compatible TLS settings
282285
0 commit comments