mirror of
https://github.com/awatertrevi/infisical.git
synced 2026-10-08 13:28:27 +00:00
Remove ACMESANType usage on redundant issuance param
This commit is contained in:
@@ -11,12 +11,7 @@ import { readLimit, writeLimit } from "@app/server/config/rateLimiter";
|
||||
import { addNoCacheHeaders } from "@app/server/lib/caching";
|
||||
import { verifyAuth } from "@app/server/plugins/auth/verify-auth";
|
||||
import { AuthMode } from "@app/services/auth/auth-type";
|
||||
import {
|
||||
ACMESANType,
|
||||
CertKeyAlgorithm,
|
||||
CertSignatureAlgorithm,
|
||||
CrlReason
|
||||
} from "@app/services/certificate/certificate-types";
|
||||
import { CertKeyAlgorithm, CertSignatureAlgorithm, CrlReason } from "@app/services/certificate/certificate-types";
|
||||
import { CaType } from "@app/services/certificate-authority/certificate-authority-enums";
|
||||
import { validateCaDateField } from "@app/services/certificate-authority/certificate-authority-validators";
|
||||
import {
|
||||
@@ -129,18 +124,6 @@ export const registerCertificateRouter = async (server: FastifyZodProvider) => {
|
||||
.optional(),
|
||||
signatureAlgorithm: z.nativeEnum(CertSignatureAlgorithm).optional(),
|
||||
keyAlgorithm: z.nativeEnum(CertKeyAlgorithm).optional(),
|
||||
subjectAlternativeNames: z
|
||||
.array(
|
||||
z.object({
|
||||
type: z.nativeEnum(ACMESANType),
|
||||
value: z
|
||||
.string()
|
||||
.trim()
|
||||
.min(1, "SAN value cannot be empty")
|
||||
.max(255, "SAN value must be less than 255 characters")
|
||||
})
|
||||
)
|
||||
.optional(),
|
||||
ttl: z
|
||||
.string()
|
||||
.trim()
|
||||
@@ -199,19 +182,9 @@ export const registerCertificateRouter = async (server: FastifyZodProvider) => {
|
||||
useOrderFlow = caType !== CaType.INTERNAL;
|
||||
}
|
||||
|
||||
if (attributes?.subjectAlternativeNames?.length || useOrderFlow) {
|
||||
let acmeAltNames: Array<{ type: ACMESANType; value: string }> | undefined = attributes?.subjectAlternativeNames;
|
||||
if (useOrderFlow && !attributes?.subjectAlternativeNames && attributes?.altNames?.length) {
|
||||
acmeAltNames = attributes.altNames.map((alt: { type: CertSubjectAlternativeNameType; value: string }) => ({
|
||||
type: (alt.type === CertSubjectAlternativeNameType.DNS_NAME
|
||||
? ACMESANType.DNS
|
||||
: ACMESANType.IP) as ACMESANType,
|
||||
value: alt.value
|
||||
}));
|
||||
}
|
||||
|
||||
if (useOrderFlow) {
|
||||
const certificateOrderObject = {
|
||||
altNames: acmeAltNames || [],
|
||||
altNames: attributes?.altNames || [],
|
||||
validity: { ttl: attributes?.ttl || "" },
|
||||
commonName: attributes?.commonName,
|
||||
keyUsages: attributes?.keyUsages,
|
||||
@@ -579,7 +552,7 @@ export const registerCertificateRouter = async (server: FastifyZodProvider) => {
|
||||
profileId: z.string().uuid(),
|
||||
subjectAlternativeNames: z.array(
|
||||
z.object({
|
||||
type: z.nativeEnum(ACMESANType),
|
||||
type: z.nativeEnum(CertSubjectAlternativeNameType),
|
||||
value: z
|
||||
.string()
|
||||
.trim()
|
||||
|
||||
@@ -7,7 +7,7 @@ import { ms } from "@app/lib/ms";
|
||||
import { writeLimit } from "@app/server/config/rateLimiter";
|
||||
import { verifyAuth } from "@app/server/plugins/auth/verify-auth";
|
||||
import { AuthMode } from "@app/services/auth/auth-type";
|
||||
import { ACMESANType, CertKeyAlgorithm, CertSignatureAlgorithm } from "@app/services/certificate/certificate-types";
|
||||
import { CertKeyAlgorithm, CertSignatureAlgorithm } from "@app/services/certificate/certificate-types";
|
||||
import { validateCaDateField } from "@app/services/certificate-authority/certificate-authority-validators";
|
||||
import {
|
||||
CertExtendedKeyUsageType,
|
||||
@@ -305,7 +305,7 @@ export const registerCertificatesRouter = async (server: FastifyZodProvider) =>
|
||||
profileId: z.string().uuid(),
|
||||
subjectAlternativeNames: z.array(
|
||||
z.object({
|
||||
type: z.nativeEnum(ACMESANType),
|
||||
type: z.nativeEnum(CertSubjectAlternativeNameType),
|
||||
value: z
|
||||
.string()
|
||||
.trim()
|
||||
|
||||
@@ -208,7 +208,7 @@ export const certificateIssuanceQueueFactory = ({
|
||||
|
||||
const [, generatedCsr] = await acme.crypto.createCsr(
|
||||
{
|
||||
altNames: altNames || [],
|
||||
altNames: altNames ? [...altNames] : [],
|
||||
commonName: commonName || ""
|
||||
},
|
||||
skLeaf
|
||||
|
||||
@@ -11,7 +11,7 @@ import { TPkiAcmeAccountDALFactory } from "@app/ee/services/pki-acme/pki-acme-ac
|
||||
import { BadRequestError, ForbiddenRequestError, NotFoundError } from "@app/lib/errors";
|
||||
import { TCertificateDALFactory } from "@app/services/certificate/certificate-dal";
|
||||
import { TCertificateSecretDALFactory } from "@app/services/certificate/certificate-secret-dal";
|
||||
import { ACMESANType, CertStatus } from "@app/services/certificate/certificate-types";
|
||||
import { CertStatus } from "@app/services/certificate/certificate-types";
|
||||
import { TCertificateAuthorityDALFactory } from "@app/services/certificate-authority/certificate-authority-dal";
|
||||
import { CaStatus } from "@app/services/certificate-authority/certificate-authority-enums";
|
||||
import { TInternalCertificateAuthorityServiceFactory } from "@app/services/certificate-authority/internal/internal-certificate-authority-service";
|
||||
@@ -19,7 +19,8 @@ import {
|
||||
CertExtendedKeyUsageType,
|
||||
CertIncludeType,
|
||||
CertKeyUsageType,
|
||||
CertSubjectAttributeType
|
||||
CertSubjectAttributeType,
|
||||
CertSubjectAlternativeNameType
|
||||
} from "@app/services/certificate-common/certificate-constants";
|
||||
import { TCertificateProfileDALFactory } from "@app/services/certificate-profile/certificate-profile-dal";
|
||||
import { EnrollmentType, IssuerType } from "@app/services/certificate-profile/certificate-profile-types";
|
||||
@@ -853,7 +854,7 @@ describe("CertificateV3Service", () => {
|
||||
|
||||
describe("orderCertificateFromProfile", () => {
|
||||
const mockCertificateOrder = {
|
||||
altNames: [{ type: ACMESANType.DNS, value: "example.com" }],
|
||||
altNames: [{ type: CertSubjectAlternativeNameType.DNS_NAME, value: "example.com" }],
|
||||
validity: { ttl: "30d" },
|
||||
commonName: "example.com",
|
||||
keyUsages: [CertKeyUsageType.DIGITAL_SIGNATURE],
|
||||
|
||||
@@ -1054,7 +1054,7 @@ export const certificateV3ServiceFactory = ({
|
||||
tx
|
||||
});
|
||||
|
||||
const certificateRecord = await certificateDAL.findById(certResult.certificateId);
|
||||
const certificateRecord = await certificateDAL.findById(certResult.certificateId, tx);
|
||||
if (!certificateRecord) {
|
||||
throw new NotFoundError({ message: "Certificate was issued but could not be found in database" });
|
||||
}
|
||||
@@ -1307,25 +1307,7 @@ export const certificateV3ServiceFactory = ({
|
||||
commonName: certificateOrder.commonName,
|
||||
keyUsages: certificateOrder.keyUsages,
|
||||
extendedKeyUsages: certificateOrder.extendedKeyUsages,
|
||||
subjectAlternativeNames: certificateOrder.altNames?.map((san) => {
|
||||
let certType: CertSubjectAlternativeNameType;
|
||||
switch (san.type) {
|
||||
case "dns":
|
||||
certType = CertSubjectAlternativeNameType.DNS_NAME;
|
||||
break;
|
||||
case "ip":
|
||||
certType = CertSubjectAlternativeNameType.IP_ADDRESS;
|
||||
break;
|
||||
default:
|
||||
throw new BadRequestError({
|
||||
message: `Unsupported Subject Alternative Name type: ${san.type as string}`
|
||||
});
|
||||
}
|
||||
return {
|
||||
type: certType,
|
||||
value: san.value
|
||||
};
|
||||
}),
|
||||
subjectAlternativeNames: certificateOrder.altNames,
|
||||
validity: certificateOrder.validity,
|
||||
notBefore: certificateOrder.notBefore,
|
||||
notAfter: certificateOrder.notAfter,
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
import { TProjectPermission } from "@app/lib/types";
|
||||
|
||||
import { ACMESANType } from "../certificate/certificate-types";
|
||||
import {
|
||||
CertExtendedKeyUsageType,
|
||||
CertKeyUsageType,
|
||||
@@ -45,7 +44,7 @@ export type TOrderCertificateFromProfileDTO = {
|
||||
profileId: string;
|
||||
certificateOrder: {
|
||||
altNames: Array<{
|
||||
type: ACMESANType;
|
||||
type: CertSubjectAlternativeNameType;
|
||||
value: string;
|
||||
}>;
|
||||
validity: {
|
||||
|
||||
Reference in New Issue
Block a user