根据此文档:
https://docs.microsoft.com/en-us/windows-hardware/drivers/devtest/makecert
以下命令描述了创建Windows cer-file(即来自可信提供者的证书).
这个问题是,在Visual Studio 2017中构建应用程序时,它只允许通过package.windows10.appxmanifest,一个pfx文件.更新此命令行引用时,它不会生成pvk文件,因此需要添加
MakeCert -r -pe -ss PrivateCertStore -n "CN=Contoso.com(Test)" testcert.cer
Run Code Online (Sandbox Code Playgroud)
其他命令行选项,如/ sv SubjectKeyFile,它将生成生成的pvk文件.
但是,即使使用此命令行参考:
MakeCert -r -pe -ss PrivateCertStore -n "CN=Contoso.com(Test)" -sv testcert.pvk testcert.cer
Run Code Online (Sandbox Code Playgroud)
生成的证书文件植入visual studio会产生以下错误:
清单设计器无法导入证书.
您选择的证书无法签名,因为它已过期或有其他问题.有关详细信息,请参阅 http://go.microsoft.com/fwlink/?LinkID=241478
我去了链接,没有解释真正发生了什么.一个人评论创建一个有效的临时版,但它是一个非特定的测试证书,只持续一年.
有没有更好的方法用makecert创建脚本?我怎么知道证书是否最终正确建立?其他文档会有所帮助,但我还没有找到任何其他内容.
certificate self-signed visual-studio uwp visual-studio-2017
我的应用程序只是连接到家庭设备上的Web服务器并读取一些HTML.它在使用http时工作正常,但现在在iOS 8上使用https时它不起作用.
我使用AFNetworkingv1并使用这些覆盖方法覆盖SSL检查(是的,我知道在正常情况下这不应该完成并且是不安全的等等..但这是另一个主题).
[self setAuthenticationChallengeBlock:^(NSURLConnection *connection, NSURLAuthenticationChallenge *challenge) {
if ([challenge.protectionSpace.authenticationMethod isEqualToString:NSURLAuthenticationMethodServerTrust]) {
[challenge.sender useCredential:[NSURLCredential credentialForTrust:challenge.protectionSpace.serverTrust] forAuthenticationChallenge:challenge];
}
}];
[self setAuthenticationAgainstProtectionSpaceBlock:^BOOL(NSURLConnection *connection, NSURLProtectionSpace *protectionSpace) {
if([[protectionSpace authenticationMethod] isEqualToString:NSURLAuthenticationMethodServerTrust]) {
return YES; // Self-signed cert will be accepted
}
// If no other authentication is required, return NO for everything else
// Otherwise maybe YES for NSURLAuthenticationMethodDefault and etc.
return NO;
}];
Run Code Online (Sandbox Code Playgroud)
现在使用iOS 8,我收到如下错误:
CFNetwork SSLHandshake失败(-9806)
CFNetwork SSLHandshake失败(-9806)
CFNetwork SSLHandshake失败(-9806)
NSURLConnection/CFURLConnection HTTP加载失败(kCFStreamErrorDomainSSL,-9806)
连接期间出错:Error Domain = NSURLErrorDomain Code = -1200"发生SSL错误,无法建立与服务器的安全连接." …
我正在尝试查找WebClient使用的示例.我的目标是使用Spring 5 WebClient使用https和自签名证书查询REST服务
任何例子?
我有一个自签名证书用于开发测试.我已将其添加到证书管理器中的"受信任的根证书颁发机构"文件夹下,并且在IE或Chrome下访问该站点时,它被认为是有效的(在Firefox下它不喜欢它是自签名的事实).
但是,当我的C#客户端尝试连接以调用Web服务或打开SSL套接字时,它会收到一个异常,说"无法为具有权限'[服务器地址]'的SSL/TLS安全通道建立信任关系.".更烦人的是,当我通过Visual Studio进行调试时,这种情况不会发生,只有当我尝试从已将证书添加到受信任组的测试计算机运行时才会发生这种情况.
.NET用于验证我的证书的标准是什么?
我有一个自托管的WCF服务器作为本地系统帐户下的Windows服务运行.我正在尝试以编程方式在c#中创建自签名证书,以便使用消息级别安全性与net.tcp端点一起使用.
我使用以下代码,它非常基于如何使用C#创建自签名证书中的接受答案?试图解决我的问题的一些小变化.
public static X509Certificate2 CreateSelfSignedCertificate(string subjectName, TimeSpan expirationLength)
{
// create DN for subject and issuer
var dn = new CX500DistinguishedName();
dn.Encode("CN=" + subjectName, X500NameFlags.XCN_CERT_NAME_STR_NONE);
CX509PrivateKey privateKey = new CX509PrivateKey();
privateKey.ProviderName = "Microsoft Strong Cryptographic Provider";
privateKey.Length = 1024;
privateKey.KeySpec = X509KeySpec.XCN_AT_KEYEXCHANGE;
privateKey.KeyUsage = X509PrivateKeyUsageFlags.XCN_NCRYPT_ALLOW_DECRYPT_FLAG | X509PrivateKeyUsageFlags.XCN_NCRYPT_ALLOW_KEY_AGREEMENT_FLAG;
privateKey.MachineContext = true;
privateKey.ExportPolicy = X509PrivateKeyExportFlags.XCN_NCRYPT_ALLOW_EXPORT_FLAG;
privateKey.Create();
// Use the stronger SHA512 hashing algorithm
var hashobj = new CObjectId();
hashobj.InitializeFromAlgorithmName(ObjectIdGroupId.XCN_CRYPT_HASH_ALG_OID_GROUP_ID,
ObjectIdPublicKeyFlags.XCN_CRYPT_OID_INFO_PUBKEY_ANY,
AlgorithmFlags.AlgorithmFlagsNone, "SHA1");
// Create the self signing …Run Code Online (Sandbox Code Playgroud) 我尝试为指向127.0.0.1的自定义本地域生成自签名证书:
# /etc/hosts
127.0.0.1 subdomain.domain.local
Run Code Online (Sandbox Code Playgroud)
我使用openssl并生成了一个自签名证书,并记住过去一切正常.但似乎自Chrome 58以来,使用自签名证书的限制要多得多.
我的尝试以" 您的连接不是私密 " 结束,并出现以下错误之一:
我很确定我在这个过程中遗漏了一些东西.请问,任何人都可以提供有效的配置来处理替代名称以及创建相应CA和证书的确切步骤,以便Chrome和Firefox可以处理我的本地自定义域吗?
我已经生成了一个自签名证书,我尝试将其安装在运行 Android 10 的手机上,但是出现了一个零食告诉我Private key required to install certificate.
我已经在运行 Android 9 的手机上尝试过使用相同的证书,它按预期工作。
知道是否有任何解决方法可以安装 CA?
可能重复:
使用Java生成证书,公钥和私钥
我需要在运行时生成自签名证书,签名并导入Java密钥库.我可以通过命令行中的"keytool"和"openssl"以下列方式执行此操作:
keytool -import -alias root -keystore keystore.txt -file cacert.pem
keytool -genkey -keyalg RSA -keysize 1024 -alias www.cia.gov -keystore keystore.txt
keytool -keystore keystore.txt -certreq -alias www.cia.gov -file req.pem
openssl x509 -req -days 3650 -in req.pem -CA cacert.pem -CAkey cakey.pem -CAcreateserial -out reqsigned.pem
keytool -import -alias www.cia.gov -keystore keystore.txt -trustcacerts -file reqsigned.pem
Run Code Online (Sandbox Code Playgroud)
当然,我可以使用keytool和openssl二进制文件发送我的应用程序并从Java执行上述命令,但我正在寻找一种更清晰的方法,这将允许我使用纯Java完成上述所有操作.
我可以使用的任何库?
有没有办法让java的keytool在SAN中使用通配符生成自签名证书(主题备用名称)?我正在使用此命令生成密钥库:
keytool -genkey -alias tomcat -storetype JKS -keyalg RSA -keysize 2048 -ext san=dns:*.example.com -keystore "path/to/my/keystore.jks" -validity 3650
Run Code Online (Sandbox Code Playgroud)
但我明白了 IOException: DNSName components must begin with a letter
显然,问题出*.example.com在SAN中,但我没有看到为example.com子域生成自签名证书的其他方法.
根据这个,应该是可以的.我的语法错误,keytool中的错误,或者我误解了什么?
顺便说一下,我正在使用JDK 1.8 update 60中的keytool
编辑我设法example.com通过指定生成所有子域的自签名证书CN=*.example.com,并将SAN留空.尽管如此,我将Omikron的答案视为已被接受(因为它是一个真正的答案,而不是绕过限制).
我正在尝试获取证书,以便在我的本地计算机上使用dev url.
我使用keytool生成了一个自签名证书,并将其与jboss连接.在chrome中,我可以单击带有x的锁来查看证书详细信息.
我下载了证书,将其添加到系统并将信任级别设置为始终信任.按照" 让Chrome接受自签名localhost证书"中的说明进行操作.然后我加载了页面(甚至重新启动浏览器,然后重新启动系统以确保一切都被拾取).
我仍然在chrome中看到带有红色x的锁,对于我的dev url,127.0.0.1和localhost.我认为让Chrome信任本地主机的网站是错误的,接下来是真正的问题,我需要什么特别的东西才能让它适用于我的开发网址?
我的hosts文件的dev url和localhost解析为127.0.0.1.在做真正的证书时,我知道必须指定域名,这让我想知道我是否需要为自定义dev url做一些特别的事情.
self-signed ×10
certificate ×4
ssl ×4
.net ×2
c# ×2
java ×2
keytool ×2
afnetworking ×1
android ×1
android-10.0 ×1
firefox ×1
https ×1
ios8 ×1
jboss ×1
localhost ×1
macos ×1
spring ×1
uwp ×1
wcf-security ×1