aws-lambda - 如何找出为 AWS Lambda 预安装的受信任 CA?
问题描述
对于我的 AWS Lambda,我需要知道有哪些受信任的 CA。我想要一个 CA 列表,因此对于 lambda 尝试访问的服务,它可以信任它而无需安装任何新证书。
解决方案
你可以自己了解一下:
public class PrintCAInfo implements RequestStreamHandler {
public void handleRequest(InputStream inputStream, OutputStream outputStream, Context context) throws IOException {
LambdaLogger logger = context.getLogger();
StringBuilder stringBuilder = new StringBuilder("[");
try {
TrustManagerFactory trustManagerFactory =
TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());
trustManagerFactory.init((KeyStore) null);
for( TrustManager trustManager: trustManagerFactory.getTrustManagers()) {
X509TrustManager x509TrustManager = (X509TrustManager)trustManager;
for(X509Certificate x509Certificate: x509TrustManager.getAcceptedIssuers() ) {
stringBuilder.append("{");
stringBuilder.append("\"subjectDN\":\"");
stringBuilder.append(x509Certificate.getSubjectDN().toString().replaceAll("\"", ""));
stringBuilder.append("\"},");
}
}
} catch (NoSuchAlgorithmException | KeyStoreException e) {
e.printStackTrace();
}
stringBuilder = new StringBuilder(stringBuilder.substring(0, stringBuilder.length() - 1));
stringBuilder.append("]");
OutputStreamWriter writer = new OutputStreamWriter(outputStream, StandardCharsets.UTF_8);
writer.write(stringBuilder.toString());
logger.log(stringBuilder.toString());
writer.close();
}
}
这将返回(并记录)一个非常简单的 JSON 正文:
[
{
"subjectDN": "CN=Amazon RDS eu-south-1 CA, OU=Amazon RDS, O=Amazon Web Services, Inc., L=Seattle, ST=Washington, C=US"
},
{
"subjectDN": "CN=Hongkong Post Root CA 1, O=Hongkong Post, C=HK"
},
{
"subjectDN": "CN=SecureTrust CA, O=SecureTrust Corporation, C=US"
},
{
"subjectDN": "CN=Entrust Root Certification Authority - EC1, OU=(c) 2012 Entrust, Inc. - for authorized use only, OU=See www.entrust.net/legal-terms, O=Entrust, Inc., C=US"
},
{
"subjectDN": "CN=DigiCert Global Root CA, OU=www.digicert.com, O=DigiCert Inc, C=US"
},
{
"subjectDN": "OU=Security Communication RootCA1, O=SECOM Trust.net, C=JP"
},
推荐阅读
- java - java中如何传值?
- php - WooCommerce 类别中的附加图像字段
- postgresql - jsonb访问数组元素
- selenium - Jmeter - 从外部文件发送正文数据时响应正文出错
- sql - SQL 中 MIN_BY 的等效表达式?
- git - 尝试同步时,从 Master Repo 中删除 Fork Repo 中的文件夹会导致冲突
- sql - Laravel Eloquent - 仅返回唯一值并忽略所有多次出现的值
- javascript - 未触发 Javascript
- c# - ASP.NET Core Ajax 返回 null
- python - 使用 multiprocessing.Process 在 Python 中并行运行函数