Валидация пользовательских сертификатов в Octopus
После получения файлов от frontend, мы можем проверить файлы и убедиться, что один из них является файлом сертификата, а другой — приватного ключа. Это можно сделать с использованием openssl
или же средствами Java:
openssl x509 -in nginx.crt -noout -text
openssl rsa -in nginx.key -check -noout
byte[] decoded = Base64.getDecoder().decode(certContent);
CertificateFactory cf = CertificateFactory.getInstance("X.509");
return (X509Certificate) cf.generateCertificate(new ByteArrayInputStream(decoded));
...
byte[] keyBytes = Base64.getDecoder().decode(pem);
PKCS8EncodedKeySpec spec = new PKCS8EncodedKeySpec(keyBytes);
KeyFactory kf = KeyFactory.getInstance("RSA");
Если сертификат и ключ удалось загрузить, то считаем их валидными.
Если сертификат и ключ валидные, то можно перезагрузить конфигурацию nginx:
nginx -s reload