mirror of
https://github.com/awatertrevi/infisical.git
synced 2026-09-22 13:39:35 +00:00
No need for allowEmptyCommonName flag, just allow empty CN for all
This commit is contained in:
@@ -1577,8 +1577,7 @@ export const internalCertificateAuthorityServiceFactory = ({
|
||||
keyUsages,
|
||||
extendedKeyUsages,
|
||||
signatureAlgorithm,
|
||||
keyAlgorithm,
|
||||
allowEmptyCommonName
|
||||
keyAlgorithm
|
||||
} = dto;
|
||||
|
||||
let collectionId = pkiCollectionId;
|
||||
@@ -1717,20 +1716,7 @@ export const internalCertificateAuthorityServiceFactory = ({
|
||||
const csrObj = new x509.Pkcs10CertificateRequest(csr);
|
||||
|
||||
const dn = parseDistinguishedName(csrObj.subject);
|
||||
let cn = commonName || dn.commonName;
|
||||
|
||||
if (!cn) {
|
||||
if (allowEmptyCommonName ?? false) {
|
||||
// Notice: for modern TLS certificates, the CN is deprecated, many ACME clients will generate CSRs with without a CN
|
||||
// we allow empty CN here to support ACME clients mostly. Since it's unclear what's the side effect of
|
||||
// allowing empty CN for legacy PKI code, let's only do it if a true allowEmptyCommonName value is provided.
|
||||
cn = "";
|
||||
} else {
|
||||
throw new BadRequestError({
|
||||
message: "A common name (CN) is required in the CSR or as a parameter to this endpoint"
|
||||
});
|
||||
}
|
||||
}
|
||||
const cn = (commonName || dn.commonName) ?? "";
|
||||
|
||||
const { caPrivateKey, caSecret } = await getCaCredentials({
|
||||
caId: ca.id,
|
||||
@@ -1948,7 +1934,7 @@ export const internalCertificateAuthorityServiceFactory = ({
|
||||
certificateTemplateId: certificateTemplate?.id,
|
||||
status: CertStatus.ACTIVE,
|
||||
friendlyName: friendlyName || csrObj.subject,
|
||||
commonName: cn!,
|
||||
commonName: cn,
|
||||
altNames: altNamesFromCsr || altNames,
|
||||
serialNumber,
|
||||
notBefore: notBeforeDate,
|
||||
|
||||
@@ -164,7 +164,6 @@ export type TSignCertFromCaDTO =
|
||||
keyAlgorithm?: string;
|
||||
isFromProfile?: boolean;
|
||||
profileId?: string;
|
||||
allowEmptyCommonName?: boolean;
|
||||
}
|
||||
| ({
|
||||
isInternal: false;
|
||||
@@ -184,7 +183,6 @@ export type TSignCertFromCaDTO =
|
||||
keyAlgorithm?: string;
|
||||
isFromProfile?: boolean;
|
||||
profileId?: string;
|
||||
allowEmptyCommonName?: boolean;
|
||||
} & Omit<TProjectPermission, "projectId">);
|
||||
|
||||
export type TGetCaCertificateTemplatesDTO = {
|
||||
|
||||
@@ -511,8 +511,7 @@ export const certificateV3ServiceFactory = ({
|
||||
actorAuthMethod,
|
||||
actorOrgId,
|
||||
enrollmentType,
|
||||
removeRootsFromChain,
|
||||
allowEmptyCommonName
|
||||
removeRootsFromChain
|
||||
}: TSignCertificateFromProfileDTO): Promise<Omit<TCertificateFromProfileResponse, "privateKey">> => {
|
||||
const profile = await validateProfileAndPermissions(
|
||||
profileId,
|
||||
@@ -583,8 +582,7 @@ export const certificateV3ServiceFactory = ({
|
||||
notAfter: normalizeDateForApi(notAfter),
|
||||
signatureAlgorithm: effectiveSignatureAlgorithm,
|
||||
keyAlgorithm: effectiveKeyAlgorithm,
|
||||
isFromProfile: true,
|
||||
allowEmptyCommonName
|
||||
isFromProfile: true
|
||||
});
|
||||
|
||||
const cert = await certificateDAL.findOne({ serialNumber, caId: ca.id });
|
||||
|
||||
@@ -39,7 +39,6 @@ export type TSignCertificateFromProfileDTO = {
|
||||
notAfter?: Date;
|
||||
enrollmentType: EnrollmentType;
|
||||
removeRootsFromChain?: boolean;
|
||||
allowEmptyCommonName?: boolean;
|
||||
} & Omit<TProjectPermission, "projectId">;
|
||||
|
||||
export type TOrderCertificateFromProfileDTO = {
|
||||
|
||||
Reference in New Issue
Block a user