问题标签 [nss]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1443 浏览

linux - 如何解决“错误代码:sec_error_invalid_algorithm”?

  1. 错误

    安全连接失败。连接到 WWW.Google.com 时出错。安全库:无效算法。**(错误代码:sec_error_invalid_algorithm)**

    • 您尝试查看的页面无法显示,因为无法验证接收到的数据的真实性。
    • 请联系网站所有者告知他们这个问题。或者,使用帮助菜单中的命令来报告这个损坏的站点。

      这个问题是在我尝试安装 Google chrome 之后出现的。我使用的是 centos6。我该如何解决这个问题?

0 投票
1 回答
858 浏览

java - How to add a trusted Certificate Autority to Firefox with JSS

I want to add a trusted certificate autority to your Mozilla Firefox certificate repository using JSS and Windows. Somebody knows how to do that?

0 投票
2 回答
335 浏览

firefox - 使用 NSS 的 Firefox 扩展程序崩溃

我是 Firefox 扩展开发的新手。

我们得到了一个 firefox 扩展,它使用 NSS 3.12 为 22 之前的所有版本的 firefox(不包括 22)签署 PDF(封装签名)。在那个 Firefox 版本之后,它使用的 NSS 中有一个修改。这个扩展是一个使用 ctypes 调用 C++ 函数的 JS 扩展。

我的目标是让这个扩展在 Firefox 22 以上的版本上工作。

我进入了我的扩展库 nspr4.dll、nss3.dll、nssutil3.dll、plc4.dll、plds4.dll,这些文件是使用 NSS 版本的 mozilla-build 生成的。

我们得到的代码与您可以在此处找到的代码非常相似:https ://github.com/metajack/nss/blob/master/cmd/p7sign/p7sign.c

该代码运行良好(它成功获取证书信息,使用 SEC_PKCS7CreateSignedData(...) 创建 SEC_PKCS7ContentInfo,使用 SEC_PKCS7SetContent(..) 设置其内容,包括证书链)直到调用 SEC_PKCS7Encode。使用此方法时,fireFox 会崩溃。

我使用 WinDBG 来获取堆栈跟踪,这就是我得到的:

这意味着在调用 SEC_PKCS7Encode 时,它​​会调用 PLDS4.DLL 中导致 Firefox 崩溃的方法。

我尝试使用空的 SEC_PKCS7ContentInfo(使用 SEC_PKCS7CreateData())调用 SEC_PKCS7Encode,但它没有崩溃。仅当填充 SEC_PKCS7ContentInfo 时才会崩溃。

经过一些研究,我发现了这个问题:https ://bugzilla.mozilla.org/show_bug.cgi?id=702307 我不知道这个问题是否是导致我的 Firefox 崩溃的原因。

我尝试使用不同版本的NSS(3.12、3.15、3.16.2)结果完全一样。

有没有办法避免这个问题?有没有办法在不使用 SEC_PKCS7Encode 的情况下对我的 SEC_PKCS7ContentInfo 进行编码?

提前致谢。

编辑 2014 年 11 月 7 日

正如 nmaier 在响应中提到的那样,问题似乎是两个不同 NSS 的利用(即使它是相同版本的 nss,因为 Mozilla 中的一个具有不同的依赖关系,例如)。

签名(和其他过程)在 C++ 项目中完成(我的扩展使用的 Dll 是从这个项目与 Visual Studio 2013 生成的)。但是为了编译和构建 DLL,项目必须有 NSS 库和包含(这很正常,我在项目中使用 NSS 方法)。主要问题是如何引用 MOZILLA FIREFOX NSS 库和包含。我编译了一个与Firefox的NSS相同版本的NSS,但是依赖不同。我还尝试获取 FireFox 源并使用 mozilla 编译它的 NSS,但我遇到了错误。如果我可以获得 Firefox 的 NSS 库,我可以在我的扩展中加载 Firefox 的 NSS dll。

如何在我的 C++ 项目中引用 Mozilla firefox 的 NSS 库以使用正确的库构建我的自定义 DLL?

0 投票
1 回答
225 浏览

c++ - 将 CERTCertificate derCert 转换为 SECKEYPublicKey

我在 64 位 Ubuntu Linux 上使用带有 nss 和 nspr 库的 C++,并尝试将 CERTCertificate derCert 转换为 SECKEYPublicKey 但 SECKEY_ImportDERPublicKey 不断返回 -8183:

安全库:格式不正确的 DER 编码消息。

我也尝试将 SECKEY_ImportDERPublicKey 与 CERTCertificate derPublicKey 一起使用,但我得到了相同的响应。

哪个函数对应该用于 derCert,哪个函数对用于将 derPublicKey 转换为 SECItem 并返回 SECKEYPublicKey 或 CERTCertificate?

0 投票
1 回答
822 浏览

php - PHP cURL,使用 NSS,忽略 CAPATH

我已经检查了很多 StackOverflow 帖子,但仍然找不到解决方案。我正在使用 Dropbox PHP API,但我认为这无关紧要。似乎问题在于cURL 拒绝使用 CAPATH 或 Dropbox 提供的特定证书来连接 API,而只是放弃了. 经过一系列调试测试,这是我从 CURLOPT_VERBOSE 得到的输出:

* Adding handle: conn: 0x252c110 * Adding handle: send: 0 * Adding handle: recv: 0 * Curl_addHandleToPipeline: length: 1 * - Conn 2 (0x252c110) send_pipe: 1, recv_pipe: 0 * About to connect() to api.dropbox.com port 443 (#2) * Trying 108.160.167.19... * Connected to api.dropbox.com (108.160.167.19) port 443 (#2) * Initializing NSS with certpath: sql:/etc/pki/nssdb * Unable to initialize NSS database * Initializing NSS with certpath: none * Unable to initialize NSS * Closing connection 2

Dropbox API 代码集CURLOPT_CAINFOCURLOPT_CAPATH. 我检查了 PHP 是否可以访问该目录和该文件。我不明白为什么Initializing NSS with certpath: none当我明确提供一个时 cURL 会说...任何帮助将不胜感激。

0 投票
2 回答
320 浏览

build - Corosync 无法在 slackware 中构建

我正在尝试从 slackware 14.1(32 位)中的源代码构建 corosync 2.3.4。

vanilla 配置找不到nss包(mozilla-nss-3.15.2-i486-2.txz)标头,因此我必须在配置之前将 CPPFLAGS 设置为“-I/usr/include/ -I/usr/include/ nss/-I/usr/include/nspr/”。

现在我在链接阶段遇到以下错误:

我的疯狂猜测是它找不到 nss 库(libnss .so*)。我已经尝试在配置之前将 LDFLAGS 设置为“-l/usr/lib/libnss3.so”,并且使用 LIBS="-L/usr/lib" 得到否定结果。

想法?

0 投票
2 回答
305 浏览

apache - 升级 Mozilla NSS 后基于 IP 的虚拟主机无法正常工作

我们在 Apache 服务器中使用 NSS 作为 SSL 引擎。最近,我们在托管两个基于 IP 的虚拟主机的 Apache 服务器上应用了最新的 SUSE Linux Enterprise 服务器补丁。升级后第一个虚拟主机工作正常,但第二个虚拟主机不工作。

访问 vhost2.xxyyzz.com 时,错误日志显示“通过 SNI 提供的主机名 vhost1.xxyyzz.com 和通过 HTTP 提供的主机名 vhost2.xxyyzz.com 不同”。

如果我们切换回使用 mod_ssl,问题就消失了。显然,该问题与以下补丁有关。任何帮助,将不胜感激。

mozilla-nss 3.16.4-0.8.1 mozilla-nss-tools 3.16.4-0.8.1 apache2-mod_nss 1.0.8-0.4.9.1

0 投票
2 回答
1942 浏览

openssl - 如何使用 NSS 或 GnuTLS 而不是 OpenSSL 构建 openSSH?

由于 OpenSSL 的安全问题,我想改用 NSS 或 GnuTLS。对于 Apache 服务器的需求,这很容易,因为每个模块都有一个模块。但是对于 SSH,它看起来很困难,如果不是不可能的话。

Dropbear 嵌入了自己的算法,不对外开放。OpenSSH 过去是使用 OpenSSL 构建的,但几个月后,由于有了新选项,可以在没有它的情况下构建它:

但是随后使用了来自 DJ Bernstein 作品的软件加密算法。这很好,但不适合我,因为我将使用 TPM,因此可以访问 pkcs11 层。因此,正确的解决方案是使用 NSS 或 GnuTLS 构建 OpenSSH。

我不能等待Linux 上的LibReSSL,也不能使用刚刚发布并使其成为 SSL 默认层的 OpenBSD。

所以我的问题是:是否有人尝试并设法使用 NSS 或 GnuTLS 而不是 OpenSSL 构建 OpenSSH,或者修补 Dropbear 或任何其他解决方案以使 SSH 服务器与 TPM 和 EC 身份验证一起使用?

注意:由于我的资源有限,我不能将 OpenSSL 与 OpenSSH 和 NSS 与 Apache 一起使用。我绝对需要最小化嵌入式库。

0 投票
4 回答
43908 浏览

php - PHP Curl(带有 NSS)在连接到 https 时可能使用 SSLv3 而不是 TLS

我在 PHP 中使用 curl 库(带有 NSS)连接到我的其他服务器。一切都很好,直到上周,由于贵宾犬漏洞(顺便说一下 CloudFlare),目标服务器停止支持 SSLv3。现在,我正在尝试使用 TLS 进行连接,但我仍然收到“SSL 连接错误”。

有示例代码,我正在使用:

据我了解,设置CURLOPT_SSLVERSION1应该强制通过 TLS 连接。

注意:我CURLOPT_SSL_VERIFYPEER => false只是为了调试,我不想把它留在那里,一旦我解决了这个问题。

这是输出:

我在共享主机提供商处拥有所有这些,因此我无法更改任何 php.ini 配置或更新任何组件。我所拥有的只是 phpinfo()。我已经检查了这些组件版本上的 TLS 支持,应该没问题。这是phpinfo的摘录:

我认为,这个问题是使用 SSLv3 而不是 TLS,但我不是 100% 确定。我得到的只是“SSL 连接错误”,我不知道如何找出用于连接的 SSL 版本。

有没有办法,如何检查,哪个 SSL 版本用于连接?还是我错过了什么?

0 投票
1 回答
21264 浏览

security - Java 1.8 客户端和以 FIPS 模式运行的 Java 1.7 TLS 1.1 服务器之间的 TLS 握手失败,即使在客户端禁用了 TLS 1.2 之后也是如此

“Java 1.7 TLS 1.1 服务器”和“Java 1.8 客户端”之间的 SSL / TLS 握手在我的环境中失败,服务器端出现以下异常:

java.security.NoSuchAlgorithmException:没有这样的算法:提供者 SunPKCS11-NSSfips 的 SunTls12MasterSecret

以下是我的环境中服务器和客户端的详细信息:

服务器:

客户:

问题:

  • 由于服务器不支持 TLS 1.2,我在客户端禁用了 TLS 1.2。
  • 我无法弄清楚为什么“即使在”客户端禁用 TLS 1.2 之后握手也会失败。你能帮我解决这个问题吗?

其他意见:

  • 如果使用 Java 1.7(任何版本)并且在客户端禁用了 TLS 1.2,则相同的场景可以正常工作。
  • 如果使用 Java 1.7(任何版本)并且在客户端启用了 TLS 1.2,则会在服务器端引发相同的异常“java.security.NoSuchAlgorithmException: no such algorithm: SunTls12MasterSecret for provider SunPKCS11-NSSfips”。
  • 如果在客户端使用 Java 1.8(任何版本),即使禁用 TLS 1.2,它也会失败。

服务器端 SSL 调试日志:

  • 似乎首先使用密码 TLS_RSA_WITH_AES_128_CBC_SHA 使用 TLS 1.1 启动握手。
  • 在此之后,出于某种原因,使用密码 TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 使用 TLS 1.2 重新启动握手,但失败并出现异常“java.security.NoSuchAlgorithmException:没有这样的算法:SunTls12MasterSecret for provider SunPKCS11-NSSfips”。

TLS 1.1 Java 1.7u45 服务器 + Java 1.8u25 TLS 1.2 禁用客户端 - 失败: