我正在使用XAMPP进行开发.最近我将xampp的安装从旧版本升级到1.7.3.
现在当我卷曲启用HTTPS的网站时,我得到以下异常
致命错误:未捕获的异常'RequestCore_Exception',消息'cURL resource:Resource id#55; cURL错误:SSL证书问题,验证CA证书是否正常.详细信息:错误:14090086:SSL例程:SSL3_GET_SERVER_CERTIFICATE:证书验证失败(60)'
每个人都建议使用PHP代码中的一些特定curl选项来解决这个问题.我认为这不应该是这样的.因为我的旧版XAMPP没有任何问题,只是在安装新版本后才发生.
我需要帮助来弄清楚我的PHP安装中哪些设置发生了变化,Apache等可以解决这个问题.
在我的搜索过程中,我找到了几种签署SSL证书签名请求的方法:
使用x509
模块:
openssl x509 -req -days 360 -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt
Run Code Online (Sandbox Code Playgroud)使用ca
模块:
openssl ca -cert ca.crt -keyfile ca.key -in server.csr -out server.crt
Run Code Online (Sandbox Code Playgroud)注意:我不确定是否使用了正确的参数.如果我要使用它,请告知正确的用法.
应该使用哪种方式与证书颁发机构签署证书请求?一种方法比另一种方法更好(例如,一种方法被弃用)?
我正在尝试使用HttpClient
lib 进行HTTPS连接,但问题在于,由于证书未由Verisign,GlobalSIgn等公认的证书颁发机构(CA)签署,并列在Android受信任证书集上,我一直在javax.net.ssl.SSLException: Not trusted server certificate
.
我已经看到了你只接受所有证书的解决方案,但如果我想询问用户该怎么办?
我想得到一个类似于浏览器的对话框,让用户决定是否继续.我最好使用与浏览器相同的证书库.有任何想法吗?
我正在开发一个Java应用程序,它通过HTTP查询远程服务器上的REST API.出于安全原因,应将此通信切换为HTTPS.
现在Let's Encrypt开始了他们的公开测试版,我想知道Java目前是否可以使用他们的证书(或者确认将来会工作).
让加密得到IdenTrust的中间交叉签名,这应该是个好消息.但是,我在这个命令的输出中找不到这两个中的任何一个:
keytool -keystore "..\lib\security\cacerts" -storepass changeit -list
Run Code Online (Sandbox Code Playgroud)
我知道可以在每台机器上手动添加可信任的CA,但由于我的应用程序可以免费下载和执行而无需进一步配置,我正在寻找"开箱即用"的解决方案.你有好消息吗?
我正在尝试连接到安全的Web服务.
即使我的密钥库和信任库已正确设置,我也会收到握手失败.
经过几天的挫折,无休止的谷歌搜索并询问周围的每个人我发现唯一的问题是java选择不在握手期间将客户端证书发送到服务器.
特别:
我的问题:
我确实为此设置了一个肮脏的解决方法,但我对此并不高兴所以如果有人能为我澄清这个,我会很高兴.
我正在寻找一种方法来向NPM添加自定义CA,以便我可以使用所述证书(内部git-server)从一个位置下载,而无需使用所有CA检查
npm config set strict-ssl false
Run Code Online (Sandbox Code Playgroud)
有没有办法实现这个目标?(如果没有:是否已经存在缺陷?)
我想加密我的网站的身份验证和注册部分(显而易见的原因).这个网站是目前和旧网站,我和一些朋友在中学开始使用,今天仍在使用.我可能会或可能不会在不久的将来将其注册为非营利组织,但不管怎样,CA都要花钱而组织没有,我们现在是大学生.
Verisign是不合理的,GoDaddy每年30美元.GoDaddy并不是太不合理,我认为他们的证书被大多数网络浏览器所接受.GoDaddy的问题是我不知道为什么他们有不同的SSL产品(即:为什么不验证我这么便宜?这对证书有什么影响以及如果它只包含一个域名,浏览器如何处理它?)
另外,使用我自己的证书是否存在问题?登录页面是否可以是http,并且有一行说明我使用的是自签名证书,这是指纹,然后将表单发布到https页面?Safari的方法不是太糟糕或听起来太吓人了.但是,我担心firefox 3的方法会吓跑人们,并给我一大堆电子邮件,说我的网站被黑客攻击或其他什么.我不知道IE如何响应自签名证书.(还有一个问题是为什么付出我可以毫不费力地创造自己的东西,但我不打算构成它的哲学部分,这是一个更实际的问题.)
总而言之,我是否每年给GoDaddy 30美元,或者我只是告诉人们一小段我在做什么,并给那些真正想要我指纹的人?
编辑:有些人在我正在阅读的论坛上提到更多信息,提到GoDaddy证书仅在GoDaddy服务器上提供,但事实并非如此.两件事:(1)这是真的吗?并且还有其他CA的价格大致相同,因此论证应该仍然相同.
我正在尝试将证书颁发机构(CA)文件名 - ca.crt添加到/ etc/ssl/certs,因为我遵循了本文.我复制了我的ca.crt文件ca.crt
并运行命令/etc/ssl/certs
.之后我检查了ca.crt
文件,但是我找不到我的CA. \
我无法弄清楚可能是什么问题.有人知道吗?
假设使用https时,浏览器向服务器发出请求,服务器返回其证书,包括公钥和CA签名.
此时,浏览器会要求其CA验证给定的公钥是否真的属于服务器?
这个验证是如何通过浏览器上的Root证书完成的?
举个例子:假设serverX从CA"rootCA"获得了证书.浏览器具有本地存储的rootCA副本.当浏览器ping serverX并以其公钥+签名回复时.现在根CA将使用其私钥解密签名并确保它真的是serverX?
它是如何工作的?
这是一个很好的答案,其中包括创建自签名CA,然后使用获得的证书签署可执行文件:如何在Windows上为代码签名创建自签名证书?.
我已经在网上阅读了很多关于驱动程序签名如何工作的讨论,答案似乎几乎是毫无疑问的,如果没有启用测试模式,你就无法加载未签名或自签名的驱动程序.然而,我与之相关的答案,特别是Roger Lipscombe的一个评论似乎提供了一个矛盾的观点:
如果要将其用于签名驱动程序,则需要将CA证书导入到计算机存储中.我的示例将其导入到用户存储中,这对于大多数软件来说都很好,用于测试/内部目的.
对我来说,只要将CA证书导入到机器商店,我就可以安装带有自签名证书(由自签名CA颁发)的驱动程序.我不必对系统进行任何其他更改(通过按启动菜单上的F8禁用测试模式,弄乱启动配置标志,如TESTSIGNING或NOINTEGRITYCHECKS).
我对么?当人们需要加载没有提供适当数字签名的驱动程序(例如旧的打印机驱动程序等)时,这种方法没有被广泛使用的障碍有哪些(如果有的话).相反,人们依赖于启动测试模式或第三方软件(DSEO)来篡改您的系统文件以运行此类驱动程序.
这种方法的缺点是什么?上述SO问题中描述的过程需要管理员权限,但无论如何安装驱动程序都需要它们.信任自签名CA可能存在安全风险 - 但是不会禁用所有签名检查会带来更大的安全风险吗?
ca ×10
ssl ×7
https ×2
java ×2
openssl ×2
self-signed ×2
android ×1
certificate ×1
csr ×1
curl ×1
driver ×1
httpclient ×1
keystore ×1
lets-encrypt ×1
npm ×1
php ×1
security ×1
windows ×1