@stacksjs/rpx
Version:
A modern and smart reverse proxy.
41 lines (40 loc) • 1.94 kB
TypeScript
export declare function getMacosLoginKeychainPath(): string;
export declare function getMacosTrustKeychains(): string[];
export declare function listCertSha256HashesByCommonName(keychain: string, commonName?: string): string[];
/**
* Remove older rpx Root CA copies from keychains, keeping only the fingerprint
* that matches the on-disk `caPath` file.
*/
export declare function pruneStaleRootCas(options: PruneStaleRootCasOptions): void;
/**
* True when the Root CA is trusted for SSL to `serverName` (macOS verify-cert).
* On other platforms, falls back to fingerprint presence in trust stores.
*/
export declare function isRootCaTrustedForSsl(caPath: string, serverName: string, options?: { verbose?: boolean }): boolean;
export declare function isRootCaFingerprintInKeychains(caPath: string, options?: { verbose?: boolean }): boolean;
/**
* Install the Root CA into login + system keychains with SSL/basic policies,
* pruning stale copies first. Returns true when SSL verification succeeds or
* the cert fingerprint is present in a keychain.
*/
export declare function trustRootCaForBrowsers(caPath: string, options: TrustRootCaForBrowsersOptions): boolean;
/** Chrome/Edge need SSL + basic trust policies — plain trustRoot often leaves "trust settings: 0". */
export declare const MACOS_CA_TRUST_FLAGS: '-d -r trustRoot -p ssl -p basic';
export declare const MACOS_SYSTEM_KEYCHAIN: '/Library/Keychains/System.keychain';
/** Default CN label for the shared rpx Root CA in macOS keychain listings. */
export declare const RPX_ROOT_CA_COMMON_NAME: 'rpx.localhost';
export declare interface ListCertsByCommonNameOptions {
keychain: string
commonName?: string
}
export declare interface PruneStaleRootCasOptions {
caPath: string
commonName?: string
keychains?: string[]
verbose?: boolean
}
export declare interface TrustRootCaForBrowsersOptions {
serverName: string
commonName?: string
verbose?: boolean
}