我有三个有关SSL的问题,我不完全明白。 如果我正确地得到它,服务器A提交一个请求到某个CA. 然后,它接收(在validation等之后)由公钥+身份+使用CA的私钥对这个信息的描述组成的数字证书。 之后,客户B想要打开与A的SSL通信,所以A向B发送其数字证书。 我的问题是B不能拿这个证书,从而窃取身份A – 例如,他们可以authentication为A到C 我知道C将用CA的公开密钥解密证书,然后encryption它只能被真实A解密的对称密钥。 但是,如果B实际上窃取了A的身份,我不知道authentication在哪里发挥作用。 除非我失去了一些东西。 第二个问题:如果证书的一部分已经被CAencryption了,为什么要在证书上使用散列呢? 这是否意味着无论如何,没有人可以乱用数字证书? 如果我是stackoverflow,我有3台服务器做同样的事情 – 允许客户端访问,读取,识别等 – 我必须有3个服务器的每个不同的数字证书。 非常感谢你。
如何轻松创build用于testing目的的自签名SSL证书?
我正在尝试为Express.js创build一个中间件,将所有非安全(端口80)stream量redirect到安全的SSL端口(443)。 不幸的是,Express.js请求中没有任何信息可以让您确定请求是通过http还是https传递的。 一个解决scheme是redirect每个请求,但这不是我的select。 笔记: 没有可能用Apache或其他东西来处理它。 它必须在节点中完成。 在应用程序中只能启动一个服务器。 你将如何解决?
我想购买一个网站销售服务的128位SSL证书。 我查了http://www.rapidssl.com/ssl-certificate-products/ssl-certificate.htm和http://www.geotrust.com/ssl/compare-ssl-certificates.html 。 为什么QuickSSL(Geotrust,$ 249)和RapidSSL(rapidSSL,$ 69)的价格如此不同? 有没有什么特别的原因,或者只是营销? RapidSSL说: 然而,我们认为,进行超过50次交易的网站将需要一个专业级别的SSL证书,因为网站客户希望获得来自一个高度可信的和已build立的SSL提供商的SSL以及国际上广为接受的SSL品牌的可能性增加。 (以“专业级别SSL”表示Geotrust证书) PS会不会让用户真正关注SSL发行机构的品牌?
我希望我的网站的身份validation和注册部分encryption(出于显而易见的原因)。 这个网站是目前和更旧的网站,一些朋友和我开始在中学,今天仍然使用。 在不久的将来,我可能会也可能不会注册成为非营利组织,但无论哪种方式,CA都会花钱,组织也没有,我们现在是大学的孩子。 Verisign是不合理的,GoDaddy是30美元/年。 GoDaddy不是太无理,我认为他们的证书被大多数网页浏览器所接受。 GoDaddy的事情是,我不知道为什么他们有不同的SSL产品(即:为什么不validation我便宜?这是否对证书有任何影响,以及浏览器如果只包含域名?) 另外,使用我自己的证书有问题吗? login页面可以是http,并且有一行说明我使用了自签名的证书,这里是指纹,然后将表单发布到https页面上? Safari的方法不是太糟糕,听起来太可怕了。 但是,恐怕firefox 3的方法会吓跑人们,给我一大堆电子邮件说我的网站被黑客攻击了。 我不知道IE如何回应自签名证书。 (还有一个问题,为什么要付出一些我可以不费吹灰之力的东西,但是我不打算把它变成哲学的一部分,这是一个更实际的问题。) 总而言之,我每年给GoDaddy 30美元,还是我只是在一小段时间内告诉别人我正在做的事情,并且给几个真正想要我的指纹的人呢? 编辑:一些在我正在阅读的更多信息的论坛上提到,GoDaddy证书只有在GoDaddy服务器上才会被提供,但事实并非如此。 有两件事情:(1)这是真的吗? 还有其他的CA价格大致相同,所以争论点应该是一样的。
我有一个使用Facebook Connect.js的Facebook应用程序。 我通过HTTPS运行我的应用程序。 除了一些必须包含在Facebook的Connect.js内容之外,网站上的所有内容都是从https://提供的 问题是我收到警告消息,说明页面中存在不安全的项目。 我已经检查了使用Chrome的开发工具/networking标签来加载哪些脚本,以查看哪些文件正在加载以及从哪里加载。 我能看到的只能通过HTTP加载,而不通过HTTPS的是一个名为http://static.ak.facebook.com/connect/canvas_proxy.php的文件。 我怎样才能强制这个文件使用HTTPS?
有没有人知道命令,以确定是否OpenSSL和mod_ssl安装在apache2? 问候,菲奥娜
我使用Jersey Client库来运行在jboss上运行的rest服务的testing。 我已经在服务器(在本地主机上运行)上使用自签名证书设置好了https。 但是,每当我运行我的testing与httpsurl,我得到以下错误: com.sun.jersey.api.client.ClientHandlerException: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target at com.sun.jersey.client.urlconnection.URLConnectionClientHandler.handle(URLConnectionClientHandler.java:131) at com.sun.jersey.api.client.Client.handle(Client.java:629) at com.sun.jersey.oauth.client.OAuthClientFilter.handle(OAuthClientFilter.java:137) at com.sun.jersey.api.client.WebResource.handle(WebResource.java:601) at com.sun.jersey.api.client.WebResource.access$200(WebResource.java:74) at com.sun.jersey.api.client.WebResource$Builder.get(WebResource.java:459) at test.helper.Helper.sendSignedRequest(Helper.java:174) … And so on 我知道这是因为我的自签名证书不在Java密钥库中。 有什么办法可以让Client不检查ssl证书的有效性,只是不pipe用吗? 这个代码将只能运行在testing服务器上,所以我不想在每次我们build立一个新的testing服务器的时候去添加新的可信任的证书。 这是打电话的代码: OAuthParameters params = new OAuthParameters(); // baseline OAuth parameters for access to […]
我已经安装了libssl-dev和openssl,但是我在安装node.js时得到了这个: > ./configure && make && make install Checking for program g++ or c++ : /usr/bin/g++ Checking for program cpp : /usr/bin/cpp Checking for program ar : /usr/bin/ar Checking for program ranlib : /usr/bin/ranlib Checking for g++ : ok Checking for program gcc or cc : /usr/bin/gcc Checking for gcc : ok Checking for library […]
我不清楚CA密钥和证书之间的区别。 CA密钥不仅仅是一个证书吗? 让我试着用一个例子来澄清。 我有一个客户端和一个服务器。 我只是试图validation我的连接到我的服务器,而不是试图build立对其他人的信任,所以我不在乎签署一个真正的CA. 选项1:生成自签名CA( ssCA )并使用它签署证书( C )。 然后,我将ssCA安装到客户端的根密钥库中,并将我的服务器设置为使用证书C. 选项2:生成自签名证书( SSC )。 将SSC安装到我的客户机上的根密钥库中。 设置我的服务器以使用证书SSC 。 第二种select似乎是一个更简单的过程。 如果仍然有效?