从命令行调用nsIX509CertDB.nsIX509CertDB时出现故障
我正在尝试开发一个调用NSIX509CERTDB.NSIX509CERTDB的FF扩展名.从Xpcshell调用此功能时,我会收到错误0x80004005(ns_error_failure).我怀疑这是失败的,因为在Xpcshell环境中,我无法提示密码.有什么方法可以从命令行提供它? 我的代码: if(nsIFile != null && nsIFile.exists()) { var certDB = Cc["@mozilla.org/security/x509certdb;1"] .getService(Ci.nsIX509CertDB); certDB.importPKCS12File(null, nsIFile); } 解决方案 这很可能涉及编写代码以替换@mozilla.org/nsCertificateDialogs;1组件(实施 nsICert
2 2023-12-15
编程技术问答社区
在linux上验证X.509证书
我刚刚开始使用X.509证书.有人可以告诉我如何在Linux上验证证书吗?用例是我的应用在上一个会话中下载了证书,并且我必须在开始新的会话之前检查其是否仍然有效(即自存储以来未过期或撤销)是否有效.我知道这里不可能有一个完整的样本,但是任何指针都会有用. 编辑:进一步调查揭示了另一个称为网络安全服务(NSS)的实用程序.就可用性而言,这与OpenSSL相比如何?另外,我正在寻找程序化解决方案,因为我将无法启动命令行实用程序. 解决方案 正如其他提到的,您可以使用openssl verify.根据文档,它也检查了有效期. 以编程方式,这可能意味着要在网络上搜索有点糟糕(或丢失)文档,读取代码示例,也可能是头痛. . 要正确验证证书,您需要通知所有中间证书.通常您还会通知撤销列表(CRL),但这不是必需的. 所以,这是您需要在代码(OPENSSL)方面做的事情: X509_STORE_new - 创建证书存储; X509_STORE_CTX_new
4 2023-12-15
编程技术问答社区
PHP cURL和SSL的奇怪超时现象
在尝试访问Amazon Cloudfront时,我会使用curl使用curl遇到奇怪的超时.这似乎会影响所有无效请求,创建分布等.卷曲的报告接收0个字节,或者很少,然后超时: Operation timed out after 120000 milliseconds with 88 out of 619 bytes received. 延长超时设置似乎没有什么不同. 使用CURLOPT_VERBOSE放置跟踪会产生此输出: * About to connect() to cloudfront.amazonaws.com port 443 (#0) * Trying 72.21.215.67... * connected * Connected to cloudfront.amazonaws.com (72.21.215.67) port 443 (#0) * skipping SSL peer certificate verification * SSL conne
8 2023-10-21
编程技术问答社区
使用cURL进行HTTP GET时出现了SSL错误
我写了一台REST服务器,该服务器在端口8000上倾听.我正在尝试使用curl命令 - 从同一台计算机调用API curl -H "accept: application/json" https://localhost:8000/status -v 我收到以下错误 * About to connect() to localhost port 8000 (#0) * Trying ::1... * Connected to localhost (::1) port 8000 (#0) * Initializing NSS with certpath: sql:/etc/pki/nssdb * CAfile: /etc/pki/tls/certs/ca-bundle.crt CApath: none * NSS error -12263 (SSL_ERROR_RX_RECORD_TOO_LONG) * SSL received a record that excee
2 2023-09-28
编程技术问答社区
即使在客户端禁用了TLS 1.2,在FIPS模式下运行的Java 1.8客户端和Java 1.7 TLS 1.1服务器之间的TLS握手也会失败
" Java 1.7 TLS 1.1服务器"和" Java 1.8客户端"之间的SSL/TLS握手在我的环境中失败,服务器端以下例外: java.security.nosuchalgorithmexception:没有这样的算法: suntls12mastersecret用于提供商Sunpkcs11-nssfips 以下是服务器和我环境中客户端的详细信息: 服务器: 服务器使用Java 1.7U45,并以FIPS 140符合模式运行 如前所述 技术/指南/安全/jsse/fips.html . 服务器使用Mozilla网络安全服务(NSS)版本 3.14.3作为加密提供商. 服务器在SLES 11 SP3上运行(Suse Linux Enterprise Server) 操作系统并使用OS提供的以下NSS RPM: Mozilla-NSS-3.14.3-0.11.11 Mozilla-NSS-Tools-3.14.3-0.11.11 Mozilla-NS
50 2023-09-27
编程技术问答社区
如何使用keytool创建证书链?
我想在Java中创建证书链,如下所示: ca.mycompany.com |--asia.mycompany.com |--india.mycompany.com ca.mycompany.com是根证书(自签名). 我知道openssl是可能的.但是,可以使用Keytool实现这一目标吗? 如果没有,我可以使用Mozilla NSS库来实现此目标? 解决方案 keytool -genkeypair -keystore root.jks -alias root -ext bc:c keytool -genkeypair -keystore ca.jks -alias ca -ext bc:c keytool -genkeypair -keystore server.jks -alias server keytool -keystore root.jks -alias root -exportcert -rfc > root.pem keytool -s
20 2023-09-27
编程技术问答社区
用OpenSSL生成的SSL证书在NSS上不起作用
i具有SSL证书(key.pem,cacert.pem,pcert.pem),该证书在Linux Mint机器上生成了OpenSSL.现在,我正在尝试将我的应用程序移至使用NSS安装的Fedora 18的另一台服务器. 卷曲正在返回此错误: unable to load client key: -8178 (SEC_ERROR_BAD_KEY) 我再次测试了计算机,在我的计算机上工作正常,但在服务器上却没有.我认为这是因为我使用openssl来生成证书,但在服务器上安装了NSS. 我找不到如何使用" certutil"或" openssl"生成证书以与NSS有效. 解决方案 失败是由于我的pkcs#8私钥格式: - 使用PKCS#8私钥 -----BEGIN ENCRYPTED PRIVATE KEY-----标题 或 -----BEGIN PRIVATE KEY-----标题 curl+openssl起作用,但不能curl+nss+libnssp
8 2023-09-27
编程技术问答社区
PHP Curl(使用NSS)在连接https时可能使用SSLv3而不是TLS
我正在使用PHP中的卷曲库(与NSS)一起连接到我的其他服务器.一切都很好,直到上周,由于贵宾犬漏洞(顺便说一句,cloudflare),目标服务器停止支持SSLV3.现在,我正在尝试使用TLS建立连接,但是我仍会收到" SSL Connect Orror". 有示例代码,我正在使用: $ch = curl_init(); curl_setopt_array( $ch, array( CURLOPT_URL => 'https://www.lumiart.cz', CURLOPT_RETURNTRANSFER => true, CURLOPT_SSLVERSION => 1, CURLOPT_SSL_VERIFYPEER => false, CURLOPT_VERBOSE => true ) ); $output = curl_exec( $ch ); echo $output; print_r( curl_getinfo( $ch
12 2023-09-27
编程技术问答社区
在CentOS上,非root用户的SSL连接的cURL不工作(错误#77)。
最近,我的服务器已停止工作,以供我的Web服务器https://地址.挖了一点时,似乎是用户正在运行的用户的问题. 如果我以root&call 为ssh在服务器上 curl -I -v https://google.com ...我得到以下响应... * About to connect() to google.com port 443 (#0) * Trying 173.194.67.113... connected * Connected to google.com (173.194.67.113) port 443 (#0) * Initializing NSS with certpath: sql:/etc/pki/nssdb * CAfile: /etc/pki/tls/certs/ca-bundle.crt CApath: none * SSL connection using SSL_RSA_WITH_RC4_128_SHA * Server
36 2023-09-27
编程技术问答社区
PKCS12密钥库和PKCS11密钥库之间有什么区别?
我对java-nss库感兴趣,我正在阅读太阳的P11指南.我对以下内容感到困惑: 使用PKCS12密钥库和PKCS11密钥库有什么区别? 密钥库只是一个密钥库,对吗?有一些差异吗?它们可以在任何方面互换使用吗? 解决方案 PKCS#12是文件格式(通常称为.p12或.pfx),您可以在其中存储一个私钥和证书.它主要用于转换/运输键和证书.如果您从浏览器中导出私钥 +证书,则可能会以这种格式. PKCS#11是一个界面,通常用于与硬件加密令牌(通常是智能卡或USB-Tokens)交谈,它们有效地嵌入了读者中).该接口具有许多操作,可以利用键和证书.有些令牌能够使用所包含的私钥签名,而钥匙无法离开设备. 该界面的重点是将处理键和证书的内容视为单独的实体,而无需进行PKCS#11提供的加密操作(更具体地说,是与私钥相关的). . 当您将PKCS#11与NSS一起使用时,您实际上将NSS用作PKCS#11层后面包裹的黑框(实际上,它是PKCS#11硬件代币的软件
16 2023-08-24
编程技术问答社区
NSS/JSS:在Java中加载用户导入的证书和PKCS#11智能卡
方案 我正在从事一个Java Swing项目,我必须在其中开发列表证书的功能,以便用户通过SSL选择身份验证服务器. 这些证书必须包含Firefox中的用户导入的证书,如果插入了SmartCard,则将列出卡中的用户.环境是Linux/MacOS.在Windows中,Internet Explorer可以处理所有内容,我们想实现的目标很像Windows中发生的事情:列出所有证书以及卡中的所有证书,供用户选择. 情况 在Ubuntu中使用Mozilla的NSS(网络安全服务)时,我发现自己迷路了.没有用于在Java中使用JSS的代码示例,我只能使其部分工作,具体取决于我为提供商加载配置文件的方式. 我现在要做的是: 阅读Firefox中的证书(KeyStore,Provider和KeyStore.Builder,将softokn.so加载为库). 用CryptoManager加载证书并获取所有模块. (CryptoManager.initializ
28 2023-03-14
编程技术问答社区
如何用JSS在Firefox中添加一个受信任的证书机构
我想使用JSS和Windows向您的Mozilla Firefox证书存储库中添加可信赖的证书自动. 有人知道该怎么做? 解决方案 这是如何使用JSS 4.3.1! 进行操作. 您会在%appdata%/mozilla/firefox/profiles中找到Windows Firefox配置文件目录. 请确保将所有必需的本机Libs放入唯一目录中,并在Java.library.path中引用此目录,例如: -djava.library.path =" c:\ dev \ firefox \ jss-native" 这是示例代码: File firefoxProfilesDir = new File(appData + "/Mozilla/Firefox/Profiles"); boolean firefoxInstalled = firefoxProfilesDir.exists() && firefoxProfilesDir.isDirector
22 2023-03-09
编程技术问答社区
不能使用Mozilla的cert9.db和certutil.exe。
以下命令:certutil.exe -L -d “C:\Users\Home\AppData\Roaming\Mozilla\Firefox\Profiles\1bku2z91.default-1633392324717\” 返回此错误消息:certutil.exe: function failed: SEC_ERROR_LEGACY_DATABASE: The certificate/key database is in an old, unsupported format. 我尝试和没有引号,更改后斜线以前进斜线.我发现目的地文件夹必须包括secmod.db,我的文件夹不包括secmod.db,但我认为这适用于cert8.db,而不是cert9.db.我正在按照about:support查找来传递正确的文件夹.我的Firefox版本是66.0.3 解决方案 您需要添加" sql:". certutil.exe -L -d sql:“C:\Users\Home\AppD
8 2023-03-09
编程技术问答社区
替换掉火狐扩展中的nsICertificateDialogs
我正在尝试用自己的实现替换nsICertificateDialogs对话框.我已经有一个扩展程序可以处理Webmail的Smime邮件.我希望能够将Mozilla证书商店与我的扩展名一起使用.我发现唯一导出Smime Certs/键的可能性(在我的扩展程序中使用)是通过导出PFX文件. 我如下所述未注册原始的证书和注册矿山, FF实例化证书对话框有什么区别.我该如何测试?我想念什么? 编辑:我的证书对话框类也不会由FF进行安排 - 即使使用有效的doken certdb.importpkcs12file(token,certfile)调用;在调用中,var certdialoginterface = cc [smimeCertificatificatificatificatificatificatedialog.mozillacontractId] .getService(ci.nsicertificatificatificatificatigationialogs);正确地
14 2023-03-09
编程技术问答社区
NSS 3.18.1的公共功能是否支持PKCS11验证功能?
我试图在JS中致电PK11_Verify let PK11_Verify = null; PK11_Verify = declareFunction("PK11_Verify", nss3, [ SECStatus, SECKEYPublicKey, SECItem.ptr, SECItem.ptr, ctypes.voidptr_t ]); // ... let rv = PK11_Verify(tokenPublicKey, signature.address(), digest.address(), null); 我将消息错误返回为: 找不到函数pk11_verify来声明 LOADLIBRAIS失败:错误:无法在库中找到功能符号 我已经检查了Web浏览器NSS 3.18.1 Basic ECC中的NSS版本,它支持pk11_verify作为公共功能.知道根本原因是什么? 谢谢 解决方案 这可能是NSS3.DLL中未列出pk11_verif
18 2023-01-27
编程技术问答社区
火狐40在签署后也不允许扩展
我正在使用firefox 40,然后遵循 注意:本网站想在Firefox 中安装未验证的附加组件 安装后,扩展程序正常工作. 但是,如果我设置标志:xpinstall.signature.sign.required to true,然后尝试安装它.我得到弹出式 这个附加组件似乎无法安装,因为它似乎已损坏. 多次遵循文章中的步骤,只是为了确保我不会错过任何东西..但仍然存在同样的问题.会感谢任何在哪里寻找问题的指针. 解决方案 现在必须由Mozilla签署扩展名,除非您使用Nightly/Dev Edition或特殊的非品牌版本/Beta版本. 请参阅此页面有关更多信息. 如果您想自己分发它们,AMO应该可以选择提交签名的扩展名,而无需列出它们.
14 2022-09-27
编程技术问答社区
从Java访问Firefox的证书信任库
我几乎对此失去了希望. 我正在尝试使用pkcs#11. 这是代码: import java.security.KeyStore; import java.security.Security; import java.util.Enumeration; import sun.security.pkcs11.SunPKCS11; public class Test { public static void main(String[] args) throws Exception { String configName = "pkcs11.cfg"; SunPKCS11 p = new SunPKCS11(configName); Security.addProvider(p); KeyStore ks = KeyStore.getInstance("PKCS11", p); ks.load(n
16 2022-09-26
编程技术问答社区
当连接到https时,PHP Curl(使用NSS)可能使用SSLv3而不是TLS
我在 PHP 中使用 curl 库(带有 NSS)连接到我的其他服务器.一切都很好,直到上周,由于贵宾犬漏洞(顺便说一下 CloudFlare),目标服务器停止支持 SSLv3.现在,我正在尝试使用 TLS 进行连接,但我仍然收到“SSL 连接错误". 有示例代码,我正在使用: $ch = curl_init(); curl_setopt_array( $ch, array( CURLOPT_URL => 'https://www.lumiart.cz', CURLOPT_RETURNTRANSFER => true, CURLOPT_SSLVERSION => 1, CURLOPT_SSL_VERIFYPEER => false, CURLOPT_VERBOSE => true ) ); $output = curl_exec( $ch ); echo $output; print_r( curl_getinfo( $ch ) );
1202 2022-07-17
编程技术问答社区