Questions tagged «ssl-certificate»

SSL证书用于加密和验证到网络服务器的连接,最流行的是Web服务器,但也用于电子邮件,文件传输和其他网络连接。


1
重新颁发自签名根CA,而不会使它签名的证书无效
我为公司的一些内部服务创建了一个自签名的根证书颁发机构,该服务由我自己配置​​(主要通过HTTPS提供)。然后,我为此证书创建了证书,并与此CA签署了证书。 现在,我想向根CA添加一个x509扩展名(CRL分发点),而不会使从该CA颁发的现有服务器证书无效。这可能吗? 我的直觉是“是”,因为据我了解,对证书身份的“完全授权” ,访问相应的私钥是必要和充分的。也就是说,除非在生成证书时(可能)将某种随机数与公钥一起合并到证书中。 我对SSL证书管理仍然相当陌生,但是我(我认为)了解标准信任链的基础。我对其他PKI加密的基本用法也很满意:我管理SSH密钥,并使用GPG进行签名和加密。我只是学习过计算机科学,尽管我只是密码学的自学入门者。 我从未为原始IIRC制作过CSR(我认为这是的直接输出openssl req -new -x509)。当然,我仍然拥有原始CA的私钥,并且使用它,我能够将原始证书“反向”为证书签名请求: openssl x509 -x509toreq -in MyCA.pem -out MyCA.csr -signkey private/MyCA.key 我希望这可以有效地“提取”上述随机数,并允许我重新创建证书,但是这次使用一个crlDistributionPoints字段,因此,与原始CA签署的所有证书仍将针对该新CA进行验证,但例外客户端将从字段中指定的HTTP URL检索我的CRL文件(当前为空)。 所以我做了一个扩展配置文件ext.conf: [ cert_ext ] subjectKeyIdentifier=hash crlDistributionPoints=URI:http://security.mycompany.co.za/root.crl 我从CSR生成了根CA的新版本: openssl x509 -extfile ./ext.conf -extensions cert_ext -req -signkey private/MyCA.key -in MyCA.csr -out MyNewCA.pem 现在,当我使用 openssl x509 -text -in MyNewCA.pem | less 我可以看到CRL扩展部分: X509v3 …

3
Certbot letencrypt在不同于443的其他端口上
我想在不同于443的端口上为网络服务器设置certbot。运行时出现以下错误 certbot --apache -d <sub>.<domain>.<ext> 授权过程失败。sub.domain.ext(tls-sni-01):urn:acme:error:connection ::服务器无法连接到客户端以验证域::无法连接到external_ip:443以应对TLS-SNI-01挑战 发生此错误后,我阅读了手册页,在其中找到了以下内容: --tls-sni-01-port TLS_SNI_01_PORT执行tls-sni-01质询的端口号。测试模式下的Boulder默认为5001。(默认:443) 然后,我尝试了以下方法来更正此错误: certbot --apache --tls-sni-01-port 14831 -d <sub>.<domain>.<ext> 添加tls-sni-01-port后,我得到了相同的错误。 是否可以使用其他端口安装证书,或者我做错了什么?

3
使用IIS的同一服务器上的SNI和通配符SSL证书
我想托管一个网站,该网站应该侦听子域(例如sub.domain.com)以及多个生活在IIS和SSL二级域名(例如domain2.com,domain3.com)之下的网站。 对于具有子域的网站,我具有通配符证书(* .domain.com),并且我还具有专门针对其他站点(domain2.com和domain3.com)的证书。 可以在相同的IIS上托管这样的设置吗(如果重要的话,可以使用Azure Cloud Service Web角色)吗? 问题恰好是titobf 在这里解释的:理论上,为此,我们需要使用SNI进行绑定,并为domain2 / 3.com指定主机,然后为* .domain.com指定具有* host的通用网站。但是在实践中,无论是否设置了绑定,如果所有网站都在该网站上,它也会收到对domain2 / 3.com的所有请求(尽管据称仅是在万不得已的情况下才进行匹配)。 任何帮助,将不胜感激。 仍未解决 不幸的是,我无法解决这个问题:它似乎只能以极其复杂的方式解决,例如创建一个位于IIS和Internet之间的软件(基本上就是防火墙)并修改传入的请求(在SSL握手之前!)。 )以允许出现这种情况。我非常有信心,无论如何,IIS都不可能做到这一点,即使是从本机模块也是如此。 我必须澄清:我们使用Azure云服务,因此还有一个限制,即我们不能使用多个IP地址(请参阅:http : //feedback.azure.com/forums/169386-cloud-services-web-and -workerrole / suggestions / 1259311-multiple-ssl-and-domains-to-one-app)。如果您可以将多个IP指向服务器,则不会出现此问题,因为您也可以为IP创建绑定,并且这些绑定可以一起使用通配符绑定。更具体地说,您需要为通配符站点提供一个IP(但是由于您现在拥有一个单独的IP,因此您不必配置通配符主机名绑定),并且为所有其他非通配符提供一个IP。 实际上,我们的解决方法是使用非标准SSL端口8443。因此,SNI绑定实际上绑定到了此端口,因此它可以与其他绑定一起使用。不好,但是对我们来说是一个可以接受的解决方法,直到您可以将多个IP用作Web角色。 现在无法使用的绑定 第一个https绑定是具有简单证书的SNI,第二个不是具有通配符证书的SNI。 http站点以及SNI https站点都可以使用,但是带有通配符绑定的站点提供了“ HTTP错误503。服务不可用”。(没有任何更多信息,没有失败的请求跟踪或事件日志条目)。 终于让它基本工作了 启用ETW跟踪日志(如Tobias所述)表明,根错误如下: 由于以下原因,请求(请求ID 0xF500000080000008)被拒绝:UrlGroupLookupFailed。 据我了解,这意味着http.sys无法将请求路由到任何可用的端点。 通过检查已注册的端点,netsh http show urlacl发现确实为端口443注册了一些东西: Reserved URL : https://IP:443/ User: NT AUTHORITY\NETWORK SERVICE …

1
“ tlsv1警报未知ca”是什么意思?
我正在尝试使用客户端证书进行卷曲请求,如下所示: curl -E my.pem https://some.site 我收到以下错误消息: curl: (35) error:14094418:SSL routines:SSL3_READ_BYTES:tlsv1 alert unknown ca 这是什么意思? 该投诉是来自我所连接的服务器还是我的curl客户端? (如何确定)在这种情况下,ca是什么? 如何使ca成为已知的?

4
Apache:验证SSL信任链以防止MITM攻击吗?
我刚刚意识到SSL中间人攻击比我想象的要普遍得多,尤其是在公司环境中。我听说过一些企业,这些企业安装了透明的SSL代理服务器。所有客户端都配置为信任此代理的证书。基本上,这意味着从理论上讲,雇主甚至可以拦截SSL加密的流量,而不会在浏览器中弹出任何警告。如上所述,客户端附带证书是受信任的。这只能通过手动验证正在使用的证书来揭示。 在我看来,雇主似乎在利用自己的优势监视员工的SSL流量。对我来说,这使SSL的整个概念变得不可信。我自己使用mitmproxy成功地测试了类似的设置,并且能够读取客户端与我的电子银行服务器之间的通信。这是不应该透露给任何人的信息。 因此,我的问题很简单:如何验证服务器端的信任链?我想确保客户端使用我的服务器的证书并且只有一个信任链。我想知道这是否可以通过Apache的SSL配置来实现?这将很方便,因为它可以轻松地应用于许多应用程序。如果这不可能,那么有人知道用PHP做到这一点的方法吗?或者您还有其他建议吗?

2
根证书应包含在CA捆绑软件中吗?
我最近访问了Qualys SSL Server测试,以确认是否正确安装了Namecheap证书。除了一个链问题(“包含锚点”)之外,其他所有内容看起来都不错: 似乎我应该能够通过删除(大多数?)信任存储中已经存在的AddTrust外部CA Root来解决此问题。但是,Namecheap自己的安装说明明确指出,这是其CA捆绑包中的三个证书之一: ComodoRSADomainValidationSecureServerCA.crt COMODORSAAddTrustCA.crt AddTrustExternalCARoot.crt 是否可以忽略Namecheap的说明并从链中删除AddTrust外部CA根证书?如果是这样,为什么Namecheap首先将其包括在内?

3
SSL证书如何仅适用于某些客户端?
我的托管服务提供商最近为我的域重新颁发了SSL证书,并重新安装了SSL证书,因为这些证书让旧的证书误过期了。 现在,我可以再次通过HTTPS 浏览该网站,我的主机也可以,其他许多用户也可以。 但是,某些用户(至少数百个用户中的至少十二个)仍在Your connection is not secure不同的浏览器和平台上收到错误消息。(事实证明,很难诊断出我无法复制的问题。) 我了解不同的浏览器使用不同的证书颁发机构(CA)列表。 如果我没有运行相同版本的Firefox(在OS X上为45.0.1),却出现SEC_ERROR_UNKNOWN_ISSUER错误(仅适用于我的网站),为什么?有什么可能呢?该用户清除了缓存并重新启动了笔记本电脑。 我在digicert.com上运行了SSL检查。结果是这样的: SSL证书不受信任 证书不是由受信任的机构签名的(请检查Mozilla的根存储)。如果您是从受信任的机构购买的证书,则可能只需要安装一个或多个中间证书。请与证书提供商联系,以获取针对您的服务器平台的帮助。 在这种情况下,我怎么能在没有SSL错误的情况下连接到站点?

2
使用Jenkins和Sonar的SSL正确的Apache反向代理配置
我正在Apache服务器后面运行两项服务:Jenkins(端口8080)和SonarQube(端口9000)。 我的Apache配置看起来像这样: <VirtualHost *:80> ServerName server Redirect permanent / https://server.domain.com/ </VirtualHost> <VirtualHost *:80> ServerName server.domain.com Redirect permanent / https://server.domain.com/ </VirtualHost> <VirtualHost *:443> ServerName server.domain.com SSLEngine on SSLCertificateFile /etc/ssl/certs/server.crt SSLCertificateKeyFile /etc/ssl/private/server.key ProxyPass /jenkins http://localhost:8080/jenkins nocanon ProxyPassReverse /jenkins http://localhost:8080/jenkins ProxyPassReverse /jenkins http://server.domain.com/jenkins ProxyPassReverse /jenkins https://server.domain.com/jenkins ProxyPass /sonar http://localhost:9000/sonar nocanon ProxyPassReverse /sonar http://localhost:9000/sonar …

3
在Windows Server 2003上启用SHA2证书支持
首先了解一些背景信息。我有一个在Windows Server 2003 SP2 32位环境中运行的SSIS程序包。在脚本任务期间,该软件包最近开始失败,并出现以下错误,该脚本任务使用SSL连接下载网页: "The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel. 一些挖掘显示出两件事:我也无法从服务器使用IE8访问有问题的网站(我可以使用Firefox),并且该网站刚刚获得了新的SHA256证书。 经过研究后,我目前的假设是问题在于我在此服务器上不支持SHA2证书。我从网站上获取了证书并运行CertUtil -verify [cert file],结果如下: The signature of the certificate can not be verified. 0x80096004 (-2146869244) 我从Microsoft找到了几个修复程序,据我了解,它们中的任何一个都应启用对SHA2证书的支持: http://support.microsoft.com/kb/938397 http://support.microsoft.com/kb/968730 因此,我请求了kb968730的修补程序,并尝试安装它,但收到以下错误: The installation cannot continue because the following packages might not …

1
找出多少浏览器拒绝SSL证书
我想知道有多少浏览器在向我们的Web服务器发出HTTP请求时拒绝了我们的SSL证书。我们正在使用一个免费的CA,现在看来它已被大多数现代浏览器所认可,但是我想获得一些数字,而不必详尽地测试浏览器和操作系统的组合。 我知道证书验证失败时浏览器会终止连接,因此Apache有什么方法可以检测到该连接?我不希望得到特定的诊断信息-仅存在证书/ SSL问题就足够了。

3
OpenSSL:如何使用交互式请求的主题备用名称(SAN)生成CSR?
我希望配置OpenSSL,以便在运行openssl req -new以生成新的证书签名请求时,系统提示我输入要包含在CSR中的任何其他主题名称。 我已将此行添加到[req_attributes]我的部分openssl.cnf: subjectAltName = Alternative subject names 这具有理想的效果,现在在生成CSR时提示我输入SAN: $ openssl req -new -out test.csr -key ./test.key <<< You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or …

1
SAN证书如何降低性能?
我听说,当将多个名称添加到单个SAN证书(主题备用名称)时,性能开始下降。 有人可以解释SAN证书的处理方式,以便我了解随着SAN名称增加而导致性能成本下降的原因吗?

1
什么是“ cacert.pem”,以及如何使用它?
我正在本地主机上使用域和子域开发Web应用程序,我想使用HTTPS连接。在我的Mac OS上,为了启用SSL,我需要正确设置Apache,因此我遵循一些指南来完成其中的一部分。 现在是时候选择一个证书来测试HTTPS请求了。我看到了cacert.pem,但是我不知道如何使用它以及它的用途(您能向我解释一下它的用法吗?)... 因此,是否有可能使用cacert.pem(见链接)对所有我的域和子域(也许,作为一个通配符证书在本地主机上)? 如果是这样,该怎么做?我必须拿和使用什么证书? 如果没有,我需要什么才能使用做通配符证书对所有我的本地主机上域和子域? 当然,这些证书必须被浏览器接受并且可以在我的域之间进行HTTPS连接。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.