我正在尝试使用jdk版本1.6.0_32编写Java https客户端.我有一个自签名的公共证书,我已导入新的信任库.问题是我一直得到"线程中的异常"主"javax.net.ssl.SSLHandshakeException:握手期间远程主机关闭连接"SSL调试输出如下:
C:\Users\csheets\eclispe_workspace\sdpweb\InstallSSLCert>java TestCert
keyStore is :
keyStore type is : jks
keyStore provider is :
init keystore
init keymanager of type SunX509
trustStore is: c:\users\csheets\4startrust.ts
trustStore type is : jks
trustStore provider is :
init truststore
adding as trusted cert:
Subject: CN=4starserver.servehttp.com
Issuer: CN=4STAR
Algorithm: RSA; Serial number: 0x200000001
Valid from Mon May 14 11:25:15 MDT 2012 until Tue May 14 11:25:15 MDT 2013
trigger seeding of SecureRandom
done seeding SecureRandom
Allow unsafe renegotiation: true
Allow legacy hello messages: …Run Code Online (Sandbox Code Playgroud) 我正在尝试将自签名证书添加到Heroku上的某个应用程序中.我跟随开发中心的指南.
https://devcenter.heroku.com/articles/ssl和https://devcenter.heroku.com/articles/ssl-certificate-self
在我生成自签名证书后,我尝试通过heroku证书添加证书:add server.crt server.key
并收到错误消息:解决信任链...失败!没有给出的证书是域名证书.
我不确定这意味着什么或如何解决问题.
编辑:"下面的代码工作正常,没有错误,没有例外"
我知道关于这个主题的大量问题,以及谷歌让人想起的许多博客.我已经通读了它们,并设法提出了我要解释的内容.我的疑问在于" 我的方法是否正确?它是否有任何副作用? "另一个问题在我解释我的方法时更好.
我在此Android.Developres教程之后使用此方法.
System.setProperty("jsse.enableSNIExtension", "false");
//Java 7 introduced SNI (enabled by default). The server I use is
// misconfigured I suppose and
// it sends an "Unrecognized Name" warning in the SSL handshake
// which breaks my web service.
// Load CA from an InputStream (CA would be saved in Raw file,
// and loaded as a raw resource)
CertificateFactory cf = CertificateFactory.getInstance("X.509");
InputStream caInput = new BufferedInputStream(new FileInputStream("PATH_TO_CERT.crt"));
Certificate ca;
try {
ca = cf.generateCertificate(caInput); …Run Code Online (Sandbox Code Playgroud) 我正在创建一个可移植类库,这意味着我必须使用System.Net.Http.HttpClient来调用我的Web API.据我所知.挑战在于,对于我的通用Windows应用程序,我无法弄清楚如何忽略由于API服务器可以拥有自签名证书而返回的错误.任何建议将不胜感激.
更新:我无法导入任何证书,因为这将是在各种组织中的各种设备上运行的应用程序,并且让他们将自签名证书导入到运行该应用程序的每个设备上是不切实际的.
我一直在我的小办公室的内联网上使用自签名证书,升级到iOS 11后,证书对我不起作用.(Chrome和其他浏览器对它们感到满意.)
我有自签名的根ca文件并将其转换为.der文件,然后通过网络将其安装到我的iPad上.
但与本答案不同,我无法在设置>常规>关于>证书信任设置中看到我的根证书.
iOS中可信任的证书是否有任何限制?我的iPhone和iPad都有这个问题.我的手术有什么不对吗?
我用这些代码来制作我的证书.
openssl genrsa -des3 -out rootCA.key 4096
openssl req -x509 -new -nodes -key rootCA.key -sha256 -days 1024 -out rootCA.crt
openssl x509 -in rootCA.crt -out cert.der -outform DER
Run Code Online (Sandbox Code Playgroud) 我一直在尝试创建自签名证书,但不断收到与随机数生成器相关的错误。我在终端中输入了以下内容:
openssl req -x509 -days 365 -sha256 -newkey rsa:4096 -keyout mycert.pem -out mycert.pem
Run Code Online (Sandbox Code Playgroud)
然后我会收到输入我的信息的提示。我很好地解决了这个问题,但是当我按 Enter 时,出现以下错误:
Cannot write random bytes:
139680915939776:error:2407007A:random number generator:RAND_write_file:Not a regular file:crypto/rand/randfile.c:163:Filename=/home/user/.rnd
Run Code Online (Sandbox Code Playgroud) 我们正在运行一个使用自签名ssl证书的Intranet应用程序.
客户确实信任我们的CA.
几年以来,我们一直在使用这种方式.
在某些PC上,我们的CA未导入,用户每天都会从浏览器收到警告.
不幸的是,用户没有告诉我们这一点,他们只是一次又一次地说"接受证书".
有没有办法检测页面的信任?
我们正在运行Web应用程序,并希望获得一个注释,如果浏览器确实手动接受该证书.然后我们可以与PC的管理员取得联系,并向他发送一条暗示PC不信任我们的CA的提示.
也许有可能以这种方式检测JavaScript?
更新我不对客户端PC负责.我无权访问它们来安装或管理证书.
我有一个设置自签名证书的网络服务器。
当我使用 ADF v2 中的 Web Activity 向 HTTPS URL 发送发布请求时,我收到错误消息:
“调用端点'https://...'时出错。响应状态代码:''。更多详细信息:异常消息:'发送请求时出错。'。端点没有响应。可能的原因:网络连接、DNS 失败、服务器证书验证或超时。
无论如何,我可以取消 Web 活动服务器证书验证或任何使 Web 活动与自签名证书一起使用的解决方法吗?
我已经被这个问题困扰了几天,因此非常感谢您的帮助。首先十分感谢。
背景:我有一个可通过 Windows 10 机器上的 Chrome 访问的网络应用程序。
我还在设备上安装了本机 Win10 应用程序。Web 应用程序通过在 IISExpress 中运行在机器上的本地 Web 服务将数据发送到 Win10 应用程序。
为了允许端口 44300 上的 HTTPS 通信,我通过 PowerShell 创建了一个自签名证书: New-SelfSignedCertificate -DnsName "localhost" -CertStoreLocation "cert:\LocalMachine\My" -NotAfter (Get-Date).AddMonths(60 )
然后将其导入到“本地计算机\受信任的根证书\证书”
从 web 应用程序中,我向 win10 应用程序发送一个命令,如下所示: https://localhost:44300/CMTService.svc/JumpToAssignment?Param=Key=418584577
win10 应用程序正在轮询这些请求并接收消息。
问题:
不同版本的 Chrome 在接受自签名证书时表现不同。例如,版本 62、64 和 75 都接受证书并允许与 Web 服务通信。但是其他版本的 Chrome(如 76 和 78)会阻止通信。Chrome DevTools 中的安全选项卡将https://localhost:44300 显示为“未知/已取消”,我的请求失败并显示ERR_SSL_CLIENT_AUTH_CERT_NEEDED. 而在 Chrome 的工作版本中,我的 URL 显示在“安全来源”下。我唯一改变的是 Chrome 版本以获得这些不同的结果。
我尝试启用 Chrome 设置以允许本地主机的无效证书(chrome://flags/#allow-insecure-localhost)。这暂时有效,但在关闭并重新打开 chrome 后,我的请求再次开始失败,错误代码相同。
如果我将失败的 URL 之一粘贴到新的 Chrome 选项卡中,突然与我的网络应用程序中的本机应用程序的通信恢复正常。但它仅适用于该会话 …
我正在尝试创建一个自签名通配符SSL证书,以便在运行IIS 6的许多开发和测试服务器上使用.以下各种指南导致了几种生成证书的方法,但我没有任何运气获得它工作.我最成功的方法是遵循这个OpenSSL指南并使用makecert.exe,如下所示:
makecert.exe -r -b 01/01/2009 -e 01/01/2042 -sr LocalMachine -ss MY -a sha1 -n CN="*.example.com" -sky exchange -pe -eku 1.3.6.1.5.5.7.3.1 -sy 12 -sp "Microsoft RSA SChannel Cryptographic Provider" wildcard.cer
Run Code Online (Sandbox Code Playgroud)
这两个都生成IIS 6将接受的证书,但是当我实际尝试查看该站点时,我在firefox中收到以下错误:
数据传输中断
加载页面时,与dev.example.com的连接中断.
IE只给出:
Internet Explorer无法显示该网页
最可能的原因:
- 您未连接到Internet.
- 该网站遇到了问题.
- 地址中可能存在输入错误.
无论我是否尝试通过域名,计算机名,localhost,本地IP或环回ip访问它,都会发生此错误.
那么......我如何创建IIS 6可以使用的自签名通配符证书?或者我如何解决我已经创建的问题?
self-signed ×10
ssl ×7
https ×2
java ×2
android ×1
azure ×1
heroku ×1
iis-6 ×1
ios ×1
javascript ×1
openssl ×1
post ×1
truststore ×1
uwp ×1
wildcard ×1
windows-10 ×1