mirror of https://github.com/certd/certd
fix: 某些证书提供商的证书确实commonName导致无法转换证书的问题
parent
2b8ea857f0
commit
ac87bc57e9
|
@ -89,7 +89,10 @@ export class CertReader {
|
||||||
|
|
||||||
getAllDomains() {
|
getAllDomains() {
|
||||||
const { detail } = this.getCrtDetail();
|
const { detail } = this.getCrtDetail();
|
||||||
const domains = [detail.domains.commonName];
|
const domains = [];
|
||||||
|
if (detail.domains?.commonName) {
|
||||||
|
domains.push(detail.domains.commonName);
|
||||||
|
}
|
||||||
domains.push(...detail.domains.altNames);
|
domains.push(...detail.domains.altNames);
|
||||||
//去重
|
//去重
|
||||||
return uniq(domains);
|
return uniq(domains);
|
||||||
|
@ -102,12 +105,23 @@ export class CertReader {
|
||||||
|
|
||||||
static getMainDomain(crt: string) {
|
static getMainDomain(crt: string) {
|
||||||
const { detail } = CertReader.readCertDetail(crt);
|
const { detail } = CertReader.readCertDetail(crt);
|
||||||
return detail.domains.commonName;
|
return CertReader.getMainDomainFromDetail(detail);
|
||||||
}
|
}
|
||||||
|
|
||||||
getMainDomain() {
|
getMainDomain() {
|
||||||
const { detail } = this.getCrtDetail();
|
const { detail } = this.getCrtDetail();
|
||||||
return detail.domains.commonName;
|
return CertReader.getMainDomainFromDetail(detail);
|
||||||
|
}
|
||||||
|
|
||||||
|
static getMainDomainFromDetail(detail: CertificateInfo) {
|
||||||
|
let domain = detail?.domains?.commonName;
|
||||||
|
if (domain == null) {
|
||||||
|
domain = detail?.domains?.altNames?.[0];
|
||||||
|
}
|
||||||
|
if (domain == null) {
|
||||||
|
domain = "unknown";
|
||||||
|
}
|
||||||
|
return domain;
|
||||||
}
|
}
|
||||||
|
|
||||||
saveToFile(type: "crt" | "key" | "pfx" | "der" | "oc" | "one" | "ic" | "jks", filepath?: string) {
|
saveToFile(type: "crt" | "key" | "pfx" | "der" | "oc" | "one" | "ic" | "jks", filepath?: string) {
|
||||||
|
@ -179,8 +193,7 @@ export class CertReader {
|
||||||
}
|
}
|
||||||
|
|
||||||
buildCertFileName(suffix: string, applyTime: any, prefix = "cert") {
|
buildCertFileName(suffix: string, applyTime: any, prefix = "cert") {
|
||||||
const detail = this.getCrtDetail();
|
let domain = this.getMainDomain();
|
||||||
let domain = detail.detail.domains.commonName;
|
|
||||||
domain = domain.replaceAll(".", "_").replaceAll("*", "_");
|
domain = domain.replaceAll(".", "_").replaceAll("*", "_");
|
||||||
const timeStr = dayjs(applyTime).format("YYYYMMDDHHmmss");
|
const timeStr = dayjs(applyTime).format("YYYYMMDDHHmmss");
|
||||||
return `${prefix}_${domain}_${timeStr}.${suffix}`;
|
return `${prefix}_${domain}_${timeStr}.${suffix}`;
|
||||||
|
@ -188,7 +201,7 @@ export class CertReader {
|
||||||
|
|
||||||
buildCertName() {
|
buildCertName() {
|
||||||
let domain = this.getMainDomain();
|
let domain = this.getMainDomain();
|
||||||
domain = domain.replaceAll("*", "_").replaceAll("*", "_");
|
domain = domain.replaceAll(".", "_").replaceAll("*", "_");
|
||||||
return `${domain}_${dayjs().format("YYYYMMDDHHmmssSSS")}`;
|
return `${domain}_${dayjs().format("YYYYMMDDHHmmssSSS")}`;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue