0
bouncycastleライブラリを使用して、指定されたPEM形式のファイルからX.509証明書を抽出する方法があります。JavaでPEM形式のファイルから複数のX.509証明書を抽出する
輸入:
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;
import org.bouncycastle.cert.X509CertificateHolder;
import org.bouncycastle.cert.jcajce.JcaX509CertificateConverter;
import org.bouncycastle.openssl.PEMParser;
方法:
/**
* Reads an X509 certificate from a PEM file.
*
* @param certificateFile The PEM file.
* @return the X509 certificate, or null.
* @throws IOException if reading the file fails
* @throws CertificateException if parsing the certificate fails
*/
public static X509Certificate readCertificatePEMFile(File certificateFile) throws IOException, CertificateException {
if (certificateFile.exists() && certificateFile.canRead()) {
try (InputStream inStream = new FileInputStream(certificateFile)) {
try (PEMParser pemParser = new PEMParser(new InputStreamReader(inStream))) {
Object object = pemParser.readObject();
if (object != null && object instanceof X509CertificateHolder) {
return new JcaX509CertificateConverter().getCertificate((X509CertificateHolder)object);
}
}
}
}
return null;
}
これは "通常の" 証明書ファイルに適しています、例えばサーバー証明書 複数の証明書を含むCAチェーン証明書ファイルがある場合、このファイルからすべての証明書を抽出するにはどうすればよいですか(ここに示す方法では、ファイルの最初の証明書のみが抽出されます)。
あなたは) 'pemParser.readObject(呼び出そうとしました;'複数回 'object'がnullになるまで? – pedrofb