标签: tls

有没有办法让 TLS 在 Ubuntu 12.04 中与 rsyslog 一起工作?

我配置 rsyslog 来加载 TLS 模块(与 loggly 对话),但收到此错误:

Jun 20 13:14:00 feynman rsyslogd-2068: could not load module '/usr/lib/rsyslog/lmnsd_gtls.so', rsyslog error -2078
 [try http://www.rsyslog.com/e/2068 ]
Run Code Online (Sandbox Code Playgroud)

该页面http://www.rsyslog.com/e/2068表示附近应该有另一个错误消息。至少在 /var/log/syslog 中,这就是我看到的全部:

Jun 20 13:17:01 feynman rsyslogd: [origin software="rsyslogd" swVersion="5.8.6" x-pid="22276" x-info="http://www.rsyslog.com"] start
Jun 20 13:17:01 feynman rsyslogd: rsyslogd's groupid changed to 103
Jun 20 13:17:01 feynman rsyslogd: rsyslogd's userid changed to 101
Jun 20 13:17:01 feynman rsyslogd-2039: Could not open output pipe '/dev/xconsole' [try http://www.rsyslog.com/e/2039 ]
Jun 20 13:17:01 feynman rsyslogd-2068: could not …
Run Code Online (Sandbox Code Playgroud)

ubuntu tls rsyslog

5
推荐指数
1
解决办法
1853
查看次数

具有 TLS 的 LDAP:连接错误 (-11)

我配置了 OpenLDAP,今天我按照以下准则配置了 TLS 以提高安全性:使用 TLS=required 配置 OpenLDAP

使用配置文件修改 cn=config.ldif:

dn: cn=config
changetype:  modify
add: olcSecurity
olcSecurity: tls=1
Run Code Online (Sandbox Code Playgroud)

和: ldapmodify -Y EXTERNAL -H ldapi:/// -f mod_ssl.ldif

现在,当我尝试创建 时ldapsearch,出现以下错误:

ldap_start_tls: Connect error (-11)
        additional info: TLS error -8172:Peer's certificate issuer has been marked as not trusted by the user.
ldap_result: Can't contact LDAP server (-1)
Run Code Online (Sandbox Code Playgroud)

例子

ldapsearch -Z -x -LLL "(uid=user1)" -d -1
Run Code Online (Sandbox Code Playgroud)

日志最相关的部分

TLS: error: connect - force handshake failure: errno 2 - moznss error -8172 …
Run Code Online (Sandbox Code Playgroud)

openldap ldap tls starttls

5
推荐指数
0
解决办法
5752
查看次数

在顶级域中使用 HSTS 标头和 includeSubdomains 时出现问题

假设我经营一家公司“Example Inc”,并有一个网站:

https://www.example.com

现在,因为出于安全意识,我正在使用 https,并希望设置 HSTS 标头以强制使用它。我还会包含子域名很长一段时间,比如说一年。

严格传输安全:max-age=31536000;包含子域

现在我也是一个优秀的网站所有者,因此我设置了以下 301 重定向到上述网站:

最后一个也有 HSTS 标头及其 https 站点。

据我了解,这是运行 https 网站的推荐设置(显然还有许多其他设置),并且相当常见。

到目前为止,一切都很好。

现在,在公司内部网上,我在互联网上不可用,有大量服务器并使用 example.com 域。所以我有:

  • machine1.example.com
  • machine2.example.com ...等

现在假设其中一些机器运行 Web 服务器,但并非所有机器都是 https。

这是否意味着如果我的任何员工碰巧访问https://example.com那么他们的浏览器将设置 HSTS 标头并拒绝访问任何子域的 http,因此无法再访问其中一些内部 http-仅网络服务器?

这有什么办法吗?

我是否应该通过不使用 includeSubDomains 设置来危及外部网站的安全?至少不在https://example.com网站上?为了内部问题而牺牲外部安全似乎是错误的。

我是否应该强制所有内部应用程序也采用 https?说起来容易做起来难。

我应该在内部使用不同的域吗?例如 machine1.intraexample.com?似乎浪费了一个域,并且某些项目(例如电子邮件服务器)需要位于主域上,尽管如果它们甚至需要运行它们,它们可能仅限于仅 https 的 Web 服务器。

还有其他想法吗?

另外,认为这可能会给公司带来大问题,可能应该在规范和其他地方更多地强调。许多网站所有者没有针对非 www 版本的单独配置,因此可能会无意中在顶级域上设置 includeSubDomain 标志。只是在实施之前想到了这个场景,我才避免了这种情况。我最初会将到期时间设置得很低(一天),以解决这些问题,恕我直言,这也可以更有力地建议。这很容易被忽视,并给许多潜在用户带来奇怪的问题。


编辑 2015 年 6 月 这是一个网站在这个问题上犯错误的真实示例: https: //github.com/NuGet/NuGetGallery/issues/2535


编辑 2015 年 10 月 一篇文章建议您确实应该使用 TLD 的 includeSubDomains 来解决 cookie 中的缺陷: …

man-in-the-middle web-server tls

5
推荐指数
1
解决办法
1829
查看次数

Windows Server 如何支持 TLS_FALLBACK_SCSV?

根据 SSL 实验室的最新报告,我的服务器上的所有内容都是绿色的,除了对TLS_FALLBACK_SCSV.

目前 IIS 似乎无法实现

我到处都看到 Windows 服务器不支持这一点,例如,这里:

不幸的是,自从我开始撰写本文以来,Qualys SSL 测试发生了变化,现在需要 TLS_FALLBACK_SCSV 支持才能获得 A+ 评级,但 Microsoft 尚未在 IIS 中发布支持。这意味着在引入支持之前,所有 Windows 服务器的评级都将被限制在 A 级。

那么为什么这对我使用 IIS 的客户有效呢?

在花了很多时间寻找解决方案后,我放弃了。然而,我最近使用 SSL Labs 报告工具检查了我的客户网站之一,我可以看到它受支持:

降级攻击防护

而且它是 Windows Server 2008 R2 标准!

我知道您可以通过禁用 TLS 1.1 和 TLS 1.0 来获得支持,但它们已启用:

协议支持

我对获得 A+ 并不是很感兴趣,而且我读到它的支持并不是真正需要的。我只是很好奇这个Windows Server是如何支持的,TLS_FALLBACK_SCSV尽管大家都说不可能。

实现它的步骤是什么?

windows tls

5
推荐指数
0
解决办法
1万
查看次数

如何从我自己的 CA 创建 SSL 证书链?

我使用我自己的 CA 为我的基础设施中的服务创建 SSL 证书。这些证书由我的 CA 直接签署。

在我看来,这可能是一个弱策略,好像证书会被破坏,我需要从一个 CA 创建新的。如果 CA 受到威胁,则游戏结束,因为每个服务都需要更新。

所以我的理解是,“保护”自己和“淡化”关注的典型方法是创建一个证书链,并在链的末端签署服务证书,这样如果签署者受到威胁,下一级可用于创建新的签名证书。

我说得对吗?

我想做的是创建我自己的证书链。

整个 TLS/SSL 的东西对我来说仍然有点模糊,但正如我所见,首先创建一个主密钥,openssl genrsa然后使用该密钥创建一个自签名证书openssl req -x509 -new以创建 CA。

然后我可以使用openssl req -new -key' and sign the request with my CA withopenssl x509 -req -CA ca.pem ...`创建新密钥和证书签名请求

那么,要创建一个证书链,应该怎么做呢?

我是否只需创建一个新密钥、新签名请求,并使用上次签名的证书而不是 CA 对其进行签名?依此类推,直到我有足够的保护级别,然后用最低级别的证书签署所有证书/密钥对?

这些东西令人困惑,我想把它弄对;-)

我发现的关于 TLS 的所有内容都非常复杂,而“简单”教程则晦涩难懂。我正在浏览 openssl 手册页,但我想获得该过程的简单解释,然后我会确保每一步都正确。

感谢您的洞察力。

ssl openssl tls certificate-authority self-signed-certificate

5
推荐指数
1
解决办法
2万
查看次数

为什么 TLS 握手在 VPS 上*永远*(20 秒)?

我有一台通常工作正常的服务器,但在尝试使用 SSL 连接时卡住了 20 秒(SSH 或 HTTPS 显示相同的模式。)

我尝试了各种不使用 SSL 的连接,例如 telnet:

telnet server-name 80
Run Code Online (Sandbox Code Playgroud)

输入 GET 命令

GET http://server-name/
Host: server-name
Accept: text/html, */*
Accept-Language: en-us
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)
Run Code Online (Sandbox Code Playgroud)

并且回复是100%即时的。

但是,当我尝试在浏览器中通过 HTTPS 连接到服务器,或使用 SSH 连接到同一服务器时,它会在连接之前等待大约 20 秒。

对于 SSH,它将很好地工作(即不再慢)。对于HTTPS,每次重新连接都会很慢。然而,未关闭的连接将继续快速工作。

我正在添加 Firebug 中出现的网络信息的屏幕截图。正如我们所看到的,每次尝试新的连接,需要 20 秒。使用 htop 查看服务器使用情况,CPU 为 0%,当发生某些情况时,CPU 在 1 分钟内会达到 0.01%。使用报告。因此,服务器总体上没有以任何方式挂钩(即,此时它是一个测试服务器,我们还没有受到其他服务器的点击。)

在此输入图像描述

所以我的问题是:什么可能导致如此缓慢?

我想也许 OpenSSL 正在尝试使用 /dev/random,但我以前从未听说过这样的问题。随机设备在该 VPS 上根本不输出太多。然而,/dev/urandom 工作得很好。我可以在几秒钟内获得 1Mb 的随机数据。我可以研究什么来解决这个问题?


/etc/resolv.conf看起来像谷歌 DNS。应该很快...

# Dynamic resolv.conf(5) file for glibc resolver(3) generated by …
Run Code Online (Sandbox Code Playgroud)

linux slow-connection tls

5
推荐指数
1
解决办法
1万
查看次数

使用前检查 Apache/Nginx 上的 HTTPS 设置

您刚刚获得了一个新的 HTTPS (SSL/TLS) 证书,您希望得到正确的中间证书。

这是在 Apache 中设置的:

SSLCertificateKeyFile /etc/ssl/www.example.com.key
SSLCertificateChainFile /etc/ssl/www.example.com.chn
SSLCertificateFile /etc/ssl/www.example.com.crt
Run Code Online (Sandbox Code Playgroud)

或者在 Nginx 中使用:

ssl_certificate_key /etc/apache2/ssl/www.example.com.key;
ssl_certificate /etc/apache2/ssl/www.example.com.pem;
Run Code Online (Sandbox Code Playgroud)

记住apachectl configtest只检查这些文件是否存在;并且nginx -t“如果网站证书不是 crt 文件中的第一个,并且密钥错误,则会失败”(感谢Drifter104)。

那么,如何在重新启动之前检查所有内容?


可能的问题

  1. 您有错误的中间体(例如,GeoTrust 在一页上列出了它们的所有中间体)。

  2. 您不小心将中间证书文件与您的网站证书文件混合在一起。

  3. 您包含了根证书(影响性能,因为这会发送不必要的数据)。

  4. 您缺少一个或多个中级证书。

  5. 证书用于错误的密钥。

  6. 您已将这些文件保留为服务器上的任何人都可以读取(例如chmod 644)。

  7. 您使用了错误的证书(域不在CNSAN 中


一些起点

提取有关密钥、CSR 或证书文件的信息:

openssl rsa -check -in "www.example.com.key";
openssl req -text -noout -verify -in "www.example.com.csr";
openssl x509 -text -noout -in "www.example.com.crt";
Run Code Online (Sandbox Code Playgroud)

使用 sha256 获取公钥哈希(例如用于设置 HPKP):

openssl rsa …
Run Code Online (Sandbox Code Playgroud)

ssl nginx https tls apache-2.2

5
推荐指数
1
解决办法
1437
查看次数

基于具有 x509v3 扩展的现有证书生成证书签名请求

通过 openssl,我尝试使用包含 X509v3 扩展(特别是 SAN)的现有证书生成 CSR。我可以通过运行创建新的 CSR

openssl x509 -x509toreq -in certificate.crt -out CSR.csr -signkey privateKey.key
Run Code Online (Sandbox Code Playgroud)

然而,当我跑步时

openssl req -text -noout -verify -in CSR.csr
Run Code Online (Sandbox Code Playgroud)

我没有看到证书中包含任何 X509v3 扩展。这可能吗?

ssl tls

5
推荐指数
1
解决办法
5740
查看次数

Samba TLS 设置

我正在阅读这个Samba 手册页,根据这个,你可以设置 TLS。我有2个问题。

  1. 在服务器端,TLS 选项需要证书和密钥的路径吗?
  2. 这将如何在客户端工作?我如何才能看到它会与 TLS 协商?它不像在 Web 浏览器中那样显示绿色挂锁。

我们有几台 Windows 机器,我们在 Ubuntu 14.04 上运行 Samba 来共享文件。当前运行 Samba 版本 4.3.9。

ubuntu encryption samba tls

5
推荐指数
1
解决办法
1万
查看次数

Outlook 拒绝使用内部签名证书显示来自服务器的 HTTPS 图像

我们目前正在将我们的网站转换为在任何地方使用 HTTPS,这包括我们发送给客户的电子邮件。在我们的内部测试环境中,我们使用 IIS 和我们自己公司内部 CA 签署的 SSL 证书。通过将其证书安装到所有计算机上的本地计算机 > 受信任的根证书颁发机构证书存储中,此 CA 是隐式受信任的。

但是,在我们生成的任何电子邮件中,如果我们使用我们的自 CA 签名证书包含来自服务器的图像链接,这些图像在 Outlook 2013 中显示为标准缺失图像/红色 X。如果我Actions > View in Browser在 Outlook 中选择,IE 将打开邮件图像显示正确。

我们已经尝试了很多事情:“不要将加密的页面保存到磁盘”设置,相同的组策略设置,以及我通过 Google 找到的各种其他提示和技巧 - 这些都没有任何区别。

基本上,Outlook 似乎拒绝信任我们的证书,即使它的 CA 是可信的 - 几乎就像它使用自己的内部可信 CA 列表而不是本地机器的列表一样。是这种情况吗,有什么办法可以解决这种行为吗?如果没有,为什么会发生这种情况,我可以做些什么来解决它?

outlook tls

5
推荐指数
1
解决办法
1827
查看次数