问题标签 [jruby-openssl]

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 投票
3 回答
419 浏览

ruby-on-rails - Gem::LoadError: 无法激活 jruby-openssl-0.9.5-java,已经激活了 jruby-openssl-0.9.7-java

执行bundle install --path vendor/cache时出现以下错误:

我正在使用 jruby 1.7.16。我尝试删除供应商,删除 Gemfile.lock 但没有解决此问题。

有人可以建议什么可以解决这个问题。

提前致谢。

0 投票
1 回答
88 浏览

jruby - JRuby 在 bouncycastle 中使用 jruby-openssl 加载私钥时出错

我正在尝试使用 s/mime 证书对我的应用程序发送的电子邮件进行签名。该应用程序使用 JRuby 1.7.26 和最新版本的 jruby-openssl gem。(版本 0.9.19)。当我尝试像这样加载我的私钥时:

我收到此错误:

如果可行,我想签署这样的电子邮件:

我在谷歌上搜索了很多以找到解决此错误或如何使用 JRuby 签署电子邮件的一般方法,但我找不到任何有用的东西。

预先感谢您的任何帮助。

0 投票
1 回答
558 浏览

openssl - Jruby OpenSSL RSA Base64 私钥无法实例化对象

在 Ruby 中,我有创建 RSA 公钥或私钥的简单旧源代码行:

我的 RSA 公钥和私钥格式如下,我对 MRI 和 Jruby 使用完全相同的密钥文件:

当我在 MRI v2.4.0 上运行它时——任何问题,我都可以实例化公钥和私钥:

但是使用 Jruby 9.0.4.0 和 9.1.8.0 我可以成功启动公共但在初始化私钥上失败:

但未能创建私钥对象:

然后我尝试使用私钥,我已经从 PEM 文件中删除了 -----BEGIN RSA PRIVATE KEY----- 和 -----END RSA PRIVATE KEY-----,之后我能够在 Jruby 上执行此操作:

有什么方法可以让 Jruby OpenSSL 自动检测 PEM 文件格式并加载 Base64 私钥?这是令人沮丧的 Base64 格式的公钥成功打开,私钥没有。

0 投票
0 回答
293 浏览

ruby - 如何手动设置邮件模块的 SSL/TLS 版本

我正在使用 JRuby 中的 Ruby Mail 模块修复与 SSL 相关的错误。这个 Github 问题解释了这个错误(并提供了一个猴子补丁) 。

该错误的要点是,在 JRuby-1.7.19 之后的某个时间,引入了一项更改,该更改更改了 Net::SMTP 与 MRI 相关的行为。为了解决这个问题,我们必须使用以下 TLS 版本TLSv1_2_client才能OpenSSL::SSL::SSLContext通过 SSL/TLS 发送邮件。

打开问题的人建议为 Mail 模块使用以下猴子补丁:

我试过这个,它确实解决了Algorithm NONE我通过猴子修补 SSLContext 来使用的问题TLSv1_2_client,但我根本不喜欢这个解决方案,因为它是:

  1. 一个猴子补丁。
  2. 它在核心问题上使用了一个巨大的创可贴,这是一个不正确的 TLS 版本。

我为我的应用程序提出的解决方案是我只是有一个由OpenSSL::SSL::SSLCOntext::METHODS. 输出METHODS为:

现在我打算 fork Ruby Mail 模块,并修改smtp.rb 文件以允许自己手动设置 SSL 版本。

我同意分叉 Ruby Mail 模块并自己进行更改。

我尝试了以下方法:

这确实设置了默认的 SSL 版本,但没有解决我的问题。

如何手动设置 SSL 版本而不依赖于上面示例中的猴子补丁?

0 投票
0 回答
83 浏览

ruby - 如何使用 Ruby 将 ASN1::DEROctetStrng 转换为 ASN1::ASN1Sequence?

我正在尝试将自签名证书生成pem格式。下面是应该执行此操作的一段代码。

我运行它pry,一切正常。它生成了证书,但是当我打开它Portecle来验证它时extensionsCertificate policies抛出了以下错误:java.lang.ClassCastException: org.bouncycastle.asn1.DEROctetString cannot be cast to org.bouncycastle.asn1.ASN1Sequence. 下面我附上截图以供参考。我现在被困住了,很欣赏这方面的任何方向。

证书策略错误