Skip to content

Commit ff329e2

Browse files
committed
chore(mbe, awm): seperate allowSelfSigned cert's
Ticket: WP-5522
1 parent 36ac2de commit ff329e2

File tree

4 files changed

+19
-7
lines changed

4 files changed

+19
-7
lines changed

src/api/master/clients/advancedWalletManagerClient.ts

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -239,16 +239,18 @@ export class AdvancedWalletManagerClient {
239239
}
240240
if (
241241
cfg.tlsMode === TlsMode.MTLS &&
242-
(!cfg.tlsKey || !cfg.tlsCert || !cfg.advancedWalletManagerUrl)
242+
(!cfg.tlsKey || !cfg.tlsCert || !cfg.advancedWalletManagerCert)
243243
) {
244-
throw new Error('tlsKey and tlsCert are required for mTLS communication');
244+
throw new Error(
245+
'tlsKey, tlsCert and advancedWalletManagerCert are required for mTLS communication',
246+
);
245247
}
246248

247249
this.baseUrl = cfg.advancedWalletManagerUrl;
248-
this.advancedWalletManagerCert = cfg.advancedWalletManagerCert;
250+
this.advancedWalletManagerCert = cfg.advancedWalletManagerCert as string;
249251
this.tlsKey = cfg.tlsKey;
250252
this.tlsCert = cfg.tlsCert;
251-
this.allowSelfSigned = cfg.allowSelfSigned ?? false;
253+
this.allowSelfSigned = cfg.advancedWalletManagerAllowSelfSigned ?? false;
252254
this.coin = coin;
253255
this.tlsMode = cfg.tlsMode;
254256

src/initConfig.ts

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,7 @@ function advancedWalletManagerEnvConfig(): Partial<AdvancedWalletManagerConfig>
103103
// KMS settings
104104
kmsUrl,
105105
kmsTlsCertPath: readEnvVar('KMS_TLS_CERT_PATH'),
106+
kmsAllowSelfSigned: readEnvVar('KMS_ALLOW_SELF_SIGNED') === 'true',
106107
// mTLS settings
107108
keyPath: readEnvVar('TLS_KEY_PATH'),
108109
crtPath: readEnvVar('TLS_CERT_PATH'),
@@ -137,6 +138,8 @@ function mergeAkmConfigs(
137138
headersTimeout: get('headersTimeout'),
138139
kmsUrl: get('kmsUrl'),
139140
kmsTlsCertPath: get('kmsTlsCertPath'),
141+
kmsTlsCert: get('kmsTlsCert'),
142+
kmsAllowSelfSigned: get('kmsAllowSelfSigned'),
140143
keyPath: get('keyPath'),
141144
crtPath: get('crtPath'),
142145
tlsKey: get('tlsKey'),
@@ -230,6 +233,8 @@ function determineProtocol(url: string, tlsMode: TlsMode, isBitGo = false): stri
230233
function masterExpressEnvConfig(): Partial<MasterExpressConfig> {
231234
const advancedWalletManagerUrl = readEnvVar('ADVANCED_WALLET_MANAGER_URL');
232235
const advancedWalletManagerCert = readEnvVar('ADVANCED_WALLET_MANAGER_CERT');
236+
const advancedWalletManagerAllowSelfSigned =
237+
readEnvVar('ADVANCED_WALLET_MANAGER_ALLOW_SELF_SIGNED') === 'true';
233238
const tlsMode = determineTlsMode();
234239

235240
if (!advancedWalletManagerUrl) {
@@ -262,6 +267,7 @@ function masterExpressEnvConfig(): Partial<MasterExpressConfig> {
262267
authVersion: Number(readEnvVar('BITGO_AUTH_VERSION')),
263268
advancedWalletManagerUrl: advancedWalletManagerUrl,
264269
advancedWalletManagerCert: advancedWalletManagerCert,
270+
advancedWalletManagerAllowSelfSigned,
265271
customBitcoinNetwork: readEnvVar('BITGO_CUSTOM_BITCOIN_NETWORK'),
266272
// mTLS settings
267273
keyPath: readEnvVar('TLS_KEY_PATH'),
@@ -301,6 +307,7 @@ function mergeMasterExpressConfigs(
301307
authVersion: get('authVersion'),
302308
advancedWalletManagerUrl: get('advancedWalletManagerUrl'),
303309
advancedWalletManagerCert: get('advancedWalletManagerCert'),
310+
advancedWalletManagerAllowSelfSigned: get('advancedWalletManagerAllowSelfSigned'),
304311
customBitcoinNetwork: get('customBitcoinNetwork'),
305312
keyPath: get('keyPath'),
306313
crtPath: get('crtPath'),
@@ -371,7 +378,7 @@ export function configureMasterExpressMode(): MasterExpressConfig {
371378
advancedWalletManagerCert: fs.readFileSync(config.advancedWalletManagerCert, 'utf-8'),
372379
};
373380
logger.info(
374-
`Successfully loaded Advanced Wallet Manager certificate from file: ${config.advancedWalletManagerCert.substring(
381+
`Successfully loaded Advanced Wallet Manager certificate from file: ${config.advancedWalletManagerCert?.substring(
375382
0,
376383
50,
377384
)}...`,

src/kms/kmsClient.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,11 +35,12 @@ export class KmsClient {
3535
const kmsUrlObj = new URL(cfg.kmsUrl);
3636
if (cfg.tlsMode === TlsMode.MTLS) {
3737
kmsUrlObj.protocol = 'https:';
38-
if (cfg.kmsTlsCert) {
38+
if (cfg.kmsTlsCert || cfg.kmsAllowSelfSigned) {
3939
this.agent = new https.Agent({
4040
ca: cfg.kmsTlsCert,
4141
cert: cfg.tlsCert,
4242
key: cfg.tlsKey,
43+
rejectUnauthorized: !cfg.kmsAllowSelfSigned,
4344
});
4445
}
4546
} else {

src/shared/types/index.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ export interface AdvancedWalletManagerConfig extends BaseConfig {
3030
kmsUrl: string;
3131
kmsTlsCertPath?: string;
3232
kmsTlsCert?: string;
33+
kmsAllowSelfSigned?: boolean;
3334
// mTLS settings
3435
keyPath?: string;
3536
crtPath?: string;
@@ -49,7 +50,8 @@ export interface MasterExpressConfig extends BaseConfig {
4950
disableEnvCheck?: boolean;
5051
authVersion?: number;
5152
advancedWalletManagerUrl: string;
52-
advancedWalletManagerCert: string;
53+
advancedWalletManagerCert?: string;
54+
advancedWalletManagerAllowSelfSigned?: boolean;
5355
customBitcoinNetwork?: string;
5456
// mTLS settings
5557
keyPath?: string;

0 commit comments

Comments
 (0)