Вот мой текущий подход: < /p>
Код: Выделить всё
// Add Subject Alternative Names
var vector = createObject("java", "org.bouncycastle.asn1.ASN1EncodableVector").init();
// Add FQDN as DNS name
var dnsType = javacast("int", 2); // DNS type is 2
var GeneralName = createObject("java", "org.bouncycastle.asn1.x509.GeneralName");
var DERIA5String = createObject("java", "org.bouncycastle.asn1.DERIA5String");
// Convert FQDN to ASN1String
var fqdnStr = DERIA5String.getInstance(arguments.fqdn);
vector.add(GeneralName.init(dnsType, fqdnStr));
// Add IP address
if (len(trim(arguments.ipAddress))) {
var inetAddress = createObject("java", "java.net.InetAddress").getByName(arguments.ipAddress);
var DEROctetString = createObject("java", "org.bouncycastle.asn1.DEROctetString");
var ipStr = DEROctetString.getInstance(inetAddress.getAddress());
vector.add(GeneralName.init(javacast("int", 7), ipStr)); // IP type is 7
}
var derSequence = createObject("java", "org.bouncycastle.asn1.DERSequence").init(vector);
var generalNames = createObject("java", "org.bouncycastle.asn1.x509.GeneralNames").init(derSequence);
[ERROR] 2025-02-03 14:50:36 modules_app.dod-csr-generator.models.CertificateGenerator Error generating CSR: argument type mismatch | ExtraInfo:
ErrorType = java.lang.IllegalArgumentException Message = argument type mismatch StackTrace = lucee.runtime.exp.NativeException: argument type mismatch
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance
< /code>
Я попробовал несколько подходов, включая: < /p>
с использованием постоянных константов generalname.dnsname и generalname.ipaddress
непосредственно создавая строки asn1
Использование различных шаблонов конструктора
с использованием derseavence с Asn1encodableVector
с использованием различных типов Javacast < /p>
Сам CSR работает, когда я не включаю Sans, но мне нужно поддерживать оба обоих Имена DNS и IP -адреса в расширении SAN. Я использую Bouncy Castle 1.76 с Lucee 5.x.
Любые понимания того, как будет оценено в CFML. < /P>
Подробнее здесь: https://stackoverflow.com/questions/794 ... ch-in-cfml