public static String signCertificateRequest(
String request,
String name,
String hostname
) throws IOException {
EngineLocalConfig config = EngineLocalConfig.getInstance();
try (
final OutputStream os = new FileOutputStream(
new File(
new File(config.getPKIDir(), "requests"),
String.format("%s.req", name)
)
)
) {
os.write(request.getBytes(StandardCharsets.UTF_8));
}
if (
!new OpenSslCAWrapper().signCertificateRequest(
new File(new File(config.getUsrDir(), "bin"), "pki-enroll-request.sh"),
name,
hostname
)
) {
throw new RuntimeException("Certificate enrollment failed");
}
return new String(Files.readAllBytes(
Paths.get(config.getPKIDir().getPath(), "certs",
String.format("%s.cer", name))));
}