我试图在Windows Server 2008上的IIS 7中创建自签名证书,但我收到错误,"参数不正确".我找不到有关此错误的任何其他信息,是否有人知道问题是什么,或者我可以在哪里找到有关出错的更多信息?

我需要设置一个javax.net.ssl.SSLContext用于Jersey-Client应用程序.我想要做的就是接受自定义根证书的上下文.是否真的无法生成密钥库文件并导入CA证书?
我想覆盖onReceivedSslError()一个WebViewClient.在这里,我想检查error.getCertificate()证书是否是从自签名CA签名的,只有在这种情况下,才能调用handler.proceed().在伪代码中:
@Override
public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
SslCertificate serverCertificate = error.getCertificate();
if (/* signed from my self-signed CA */) {
handler.proceed();
}
else {
super.onReceivedSslError(view, handler, error);
}
}
Run Code Online (Sandbox Code Playgroud)
我的CA的公钥保存在名为的BouncyCastle资源中rootca.bks.我能怎么做?
我在ruby中遇到问题,OpenSSL无法验证SSL证书.我认为这是由脚本不知道ca-bundle.pem引起的.是否有可能手动配置ca-bundle.pem的路径?
StackOverflow上有很多关于这个主题的问题,但我似乎找不到与我的问题相关的问题.
我有一个需要与HTTPS服务器通信的Android应用程序:一些与在Android系统密钥库中注册的CA(常见的HTTPS网站)签名,一些使用我拥有但不在Android系统密钥库(具有例如,自动签名证书).
我知道如何以编程方式添加我的CA并强制每个HTTPS连接使用它.我使用以下代码:
public class SslCertificateAuthority {
public static void addCertificateAuthority(InputStream inputStream) {
try {
// Load CAs from an InputStream
// (could be from a resource or ByteArrayInputStream or ...)
CertificateFactory cf = CertificateFactory.getInstance("X.509");
InputStream caInput = new BufferedInputStream(inputStream);
Certificate ca;
try {
ca = cf.generateCertificate(caInput);
} finally {
caInput.close();
}
// Create a KeyStore containing our trusted CAs
String keyStoreType = KeyStore.getDefaultType();
KeyStore keyStore = KeyStore.getInstance(keyStoreType);
keyStore.load(null, null);
keyStore.setCertificateEntry("ca", ca);
// Create a TrustManager that trusts the CAs …Run Code Online (Sandbox Code Playgroud) 我在Java中有一个X509Certificate实例,我需要确定它是CA证书还是用户证书.
有人可以提供任何帮助吗?
提前致谢!
是否有一个Android开发者页面列出了所有受信任的根CA?
我知道我可以拉文件,并使用keytool列出它们 - 寻找已发布的网页.
以下代码读取macOS中的根证书.
我只是想知道iOS中的等效代码是什么?
https://github.com/HaxeFoundation/hxcpp/blob/7bd5ff3/src/hx/libs/ssl/SSL.cpp#L455-L491
CFMutableDictionaryRef search;
CFArrayRef result;
SecKeychainRef keychain;
SecCertificateRef item;
CFDataRef dat;
sslcert *chain = NULL;
// Load keychain
if( SecKeychainOpen("/System/Library/Keychains/SystemRootCertificates.keychain",&keychain) != errSecSuccess )
return null();
// Search for certificates
search = CFDictionaryCreateMutable( NULL, 0, NULL, NULL );
CFDictionarySetValue( search, kSecClass, kSecClassCertificate );
CFDictionarySetValue( search, kSecMatchLimit, kSecMatchLimitAll );
CFDictionarySetValue( search, kSecReturnRef, kCFBooleanTrue );
CFDictionarySetValue( search, kSecMatchSearchList, CFArrayCreate(NULL, (const void **)&keychain, 1, NULL) );
if( SecItemCopyMatching( search, (CFTypeRef *)&result ) == errSecSuccess ){
CFIndex n = CFArrayGetCount( result );
for( …Run Code Online (Sandbox Code Playgroud) 目前我们正在使用一种将 CA 证书放在服务器上的方法来访问第三方 API。
certificate_path = os.path.join(CERT_PATH, 'cacert.pem')
certificate_key_path = os.path.join(CERT_PATH, 'cacert.key')
response = requests.get(url, cert=(certificate_path, certificate_key_path))
Run Code Online (Sandbox Code Playgroud)
这是有效的,但我们正在寻找而不是将 CA 证书存储在服务器上,Accounts出于安全目的(客户提出的安全原因)存储在数据库的表中。
所以问题是:
有没有什么方法可以直接将 CA 证书的字符串传递给requests直接(除了将内容写入临时文件)?
是否有任何其他httppython 模块支持在http获取/发布请求中传递 CA 证书的字符串?
我们应该使用其他方法而不是将它们存储在数据库和服务器上吗?
我正在寻找一种使用提供给我的CA证书来验证X509格式的客户端证书的node.js方法(这些证书都不是由我创建/管理的,我的软件只需要验证发送给它的蜜蜂) 。
我已经找到了完成这项工作的几个模块,但是每个模块都有问题:
x509.verify(cert, CABundlePath, cb),但是它需要从FS读取证书,而且我已经将它们存储在内存中了。这很麻烦,因为到达我应用程序的每个Web请求都将完成此操作。forge.pki.BadCertificate从抛出了一个错误forge.pki.verifyCertificateChain(caStore, [ cer ], cb)。pem.verifySigningChain(cer, [ ca ], cb)会抱怨在从中加载文件时会出错/var/...。即使可行,我也会避免使用此lib作为依赖openssl命令行工具的方式,我想避免现在,我感到非常愚蠢,因为我无法通过上述任何模块来完成此简单任务。有人可以给我指出一个简单的解决方案,该解决方案可以让我使用给定的CA证书来验证X509证书的签名/有效性吗?:s
[编辑]基本上,我需要openssl verify -verbose -CAfile ca-crt.pem client1-crt.pem的Node.js,但不依赖于OpenSSL的命令行工具,并没有该证书暂时保存到磁盘。
[edit2]是否可以仅使用https://nodejs.org/api/crypto.html#crypto_verify_verify_object_signature_signatureformat?