mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
* Make injecting CAs injectable, remove mac-ca as dependency Signed-off-by: Sebastian Malton <sebastian@malton.name> * Fix win-ca failing on electron renderer on windows Signed-off-by: Sebastian Malton <sebastian@malton.name> * Fix the matcher under features/ for main Signed-off-by: Sebastian Malton <sebastian@malton.name> * Fix lint Signed-off-by: Sebastian Malton <sebastian@malton.name> Signed-off-by: Sebastian Malton <sebastian@malton.name>
40 lines
2.3 KiB
TypeScript
40 lines
2.3 KiB
TypeScript
/**
|
|
* Copyright (c) OpenLens Authors. All rights reserved.
|
|
* Licensed under MIT License. See LICENSE in root directory for more information.
|
|
*/
|
|
|
|
import { getInjectable } from "@ogre-tools/injectable";
|
|
import { globalAgent } from "https";
|
|
import { requestSystemCAsInjectionToken } from "./request-system-cas-token";
|
|
|
|
// DST Root CA X3, which was expired on 9.30.2021
|
|
const DSTRootCAX3 = "-----BEGIN CERTIFICATE-----\nMIIDSjCCAjKgAwIBAgIQRK+wgNajJ7qJMDmGLvhAazANBgkqhkiG9w0BAQUFADA/\nMSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT\nDkRTVCBSb290IENBIFgzMB4XDTAwMDkzMDIxMTIxOVoXDTIxMDkzMDE0MDExNVow\nPzEkMCIGA1UEChMbRGlnaXRhbCBTaWduYXR1cmUgVHJ1c3QgQ28uMRcwFQYDVQQD\nEw5EU1QgUm9vdCBDQSBYMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB\nAN+v6ZdQCINXtMxiZfaQguzH0yxrMMpb7NnDfcdAwRgUi+DoM3ZJKuM/IUmTrE4O\nrz5Iy2Xu/NMhD2XSKtkyj4zl93ewEnu1lcCJo6m67XMuegwGMoOifooUMM0RoOEq\nOLl5CjH9UL2AZd+3UWODyOKIYepLYYHsUmu5ouJLGiifSKOeDNoJjj4XLh7dIN9b\nxiqKqy69cK3FCxolkHRyxXtqqzTWMIn/5WgTe1QLyNau7Fqckh49ZLOMxt+/yUFw\n7BZy1SbsOFU5Q9D8/RhcQPGX69Wam40dutolucbY38EVAjqr2m7xPi71XAicPNaD\naeQQmxkqtilX4+U9m5/wAl0CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNV\nHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFMSnsaR7LHH62+FLkHX/xBVghYkQMA0GCSqG\nSIb3DQEBBQUAA4IBAQCjGiybFwBcqR7uKGY3Or+Dxz9LwwmglSBd49lZRNI+DT69\nikugdB/OEIKcdBodfpga3csTS7MgROSR6cz8faXbauX+5v3gTt23ADq1cEmv8uXr\nAvHRAosZy5Q6XkjEGB5YGV8eAlrwDPGxrancWYaLbumR9YbK+rlmM6pZW87ipxZz\nR8srzJmwN0jP41ZL9c8PDHIyh8bwRLtTcm1D9SZImlJnt1ir/md2cXjbDaJWFBM5\nJDGFoqgCWjBH4d1QB7wCCZAA62RjYJsWvIjJEubSfZGL+T0yjWW06XyxV3bqxbYo\nOb8VZRzI9neWagqNdwvYkQsEjgfbKbYK7p2CNTUQ\n-----END CERTIFICATE-----\n";
|
|
|
|
function isCertActive(cert: string) {
|
|
const isExpired = typeof cert !== "string" || cert.includes(DSTRootCAX3);
|
|
|
|
return !isExpired;
|
|
}
|
|
|
|
const injectSystemCAsInjectable = getInjectable({
|
|
id: "inject-system-cas",
|
|
instantiate: (di) => {
|
|
const requestSystemCAs = di.inject(requestSystemCAsInjectionToken);
|
|
|
|
return async () => {
|
|
for (const cert of await requestSystemCAs()) {
|
|
if (isCertActive(cert)) {
|
|
if (Array.isArray(globalAgent.options.ca) && !globalAgent.options.ca.includes(cert)) {
|
|
globalAgent.options.ca.push(cert);
|
|
} else {
|
|
globalAgent.options.ca = [cert];
|
|
}
|
|
}
|
|
}
|
|
};
|
|
},
|
|
});
|
|
|
|
export default injectSystemCAsInjectable;
|
|
|