Tag: openssl

OpenSSL – 既不是PUB密钥也不是PRIV密钥::嵌套asn1错误

我试图使用公钥初始化OpenSSL :: PKey :: RSA,但它无法正常工作。 以下是密钥对: —–BEGIN RSA PRIVATE KEY—– MIIBOwIBAAJBALbkpbDFbZ54bM5ybwwdCqsUHjxWQF4B0Q1sAOBFEYdpxZJZ8dAz ycPzIgSlPc8yqjeqwJQtvCpktrntALpX1ksCAwEAAQJAYT0XyvBs48BrOSgmWm5m aab8nF/PQSv+FgDCRnryYue3WZOpUqITB0w6ivC68G/+Mf6IXyE4ljqw2iIAdjyv YQIhAOE20o2bLPMtziEOdH0KGpN0gNYpe38jGyvGw7k5gZd9AiEAz+TWZRJpc9yX 5dew3xcBtIhaTPFmVLgmfU7FwIWW32cCIQCvKK9LmUO1gouN5CsvUNtokbTeW/cD 467vNjDlb1deFQIhAK55pZ1p2GrOpgTWArEYg+vZy79rkbBkZJkh9UFgXIDdAiBm Rglcmt9cD2Vqg7xMr7cP3FJbSmJffSwYve1fazuZOw== —–END RSA PRIVATE KEY—– —–BEGIN PUBLIC KEY—– MEoCAQACQLbkpbDFbZ54bM5ybwwdCqsUHjxWQF4B0Q1sAOBFEYdpxZJZ8dAzycPz IgSlPc8yqjeqwJQtvCpktrntALpX1ksCAwEAAQ== —–END PUBLIC KEY—– OpenSSL::PKey::RSA.new(private_key) # WORKS! OpenSSL::PKey::RSA.new(public_key) # FAILS! OpenSSL::PKey::RSAError: Neither PUB key nor PRIV key:: nested asn1 error from (irb):16:in `initialize’ from (irb):16:in `new’ from (irb):16 from /Users/dhracker/.rvm/gems/ruby-1.9.3-p194/gems/railties-3.2.8/lib/rails/commands/console.rb:47:in […]

为什么本站点的ECC-DH对称密钥与OpenSSL不同

我正在使用(这个网站的) Javascript库和OpenSSL Ruby来计算Elliptic Curve Diffie Hellman的对称密钥。 但是,根据我的结果,OpenSSL Ruby只生成一个密钥,而不像具有X和Y对称密钥的网站上的密钥。 我很困惑,因为我的OpenSSL对称密钥与网站上的那些x和y中的任何一个都不匹配。 使用secp224r1曲线得到的对称(共享密钥)密钥: Ruby OpenSSL 13506351678569412185536677668115375188438201041599149052762191980775 使用Site的JS库 x: 26210366144026557327555572210249241206666031403062020900473236895358 y: 19676808255388748321882118528911150828003358302170965920476006073155 我的问题是: 1)为什么OpenSSL Ruby只产生一个键,而该大小产生两个键:x和y(因为我假设x和y不会相互连接,因为与Ruby对称相比,bitsize会太长键) 2)有没有办法将两个对称密钥(上面的OpenSSL和JSBN-EC库)相互转换? 我所有的转换尝试都失败了。 我一直在努力工作一周,现在用JSBN-EC库实现Ruby OpenSSL。 我也试过(SJCL库)但是类似的结果(对称键不匹配)。 请帮忙。

如何以编程方式检查证书是否已被撤销?

我正在开发一个xcode自动构建系统。 执行一些预构建validation时,我想检查指定的证书文件是否已被撤销。 我了解security verify-certvalidation其他证书属性,但不validationrevokation。 我怎样才能检查是否有效? 我正在用Ruby编写构建系统,但我对任何语言的思想都很开放。 我读了这个答案( Openssl – 如何检查证书是否被撤销 )但是底部的链接( OpenSSL现在是否自动处理CRL(证书撤销列表)? )进入的材料对我来说有点过于牵连(上传撤销证书的用户是远远不够的情况)。 是否有更简单/ ruby​​导向的方法来检查revokation? 提前致谢!

由于windows中的openssl / ETimedout,gem install rails无法正常工作

最初,我在我的Windows 7中安装了ruby 1.9.3版本,我最近安装了ruby 2.0.0p195并且已经从命令ruby 2.0.0p195测试( ruby -v; ruby -e “puts 100”; irb )工作得很好。 ruby -v给ruby 2.0.0p195 (2013-05-14) [i386-mingw32] gem -v给了我2.0.2 当我尝试安装rails时,我总是得到以下错误: 使用http://rubygems.org C:\Users\san>gem install rails –source http://rubygems.org ERROR: Could not find a valid gem ‘rails’ (>= 0), here is why: Unable to download data from https://rubygems.org/ – Errno::ETIMEDOUT: A connection attempt failed because the connected […]

连接到Paypal时,OpenSSL :: SSL :: SSLError(SSL_connect返回= 1 errno = 0状态= SSLv3读取服务器证书B:证书validation失败)

我知道有很多关于这个错误的讨论,但很遗憾地说我无法在那里找到任何可行的解决方案。 我正在使用ShareTribe开发一个电子商务网站。我正在尝试将Paypal实现为支付网关 。所以我正在使用Activemerchant 。 在开发机器上一切正常,但是当我将rails应用程序部署到生产时它会抛出 OpenSSL :: SSL :: SSLError(SSL_connect返回= 1 errno = 0状态= SSLv3读取服务器证书B:证书validation失败) 我正在将我的Activemerchant初始化为 config.after_initialize do ActiveMerchant::Billing::Base.mode = :test paypal_options = { login: “bla bla”, password: “bla bla”, signature: “bla bla”, appid: “APP-80W284485P519543T” } ::EXPRESS_GATEWAY = ActiveMerchant::Billing::PaypalExpressGateway.new(paypal_options) end 添加了HTTPS和已禁用的SSLV3 经过大量的谷歌搜索,我发现了 SSLv3被certificate对POODLE漏洞不安全。 您应该确保您的系统具有最新版本的OpenSSL,以便您可以使用TLSv1.2。 所以我禁用了SSLV3,如下所示 openssl s_client -connect kickmarket.eu:443 CONNECTED(00000003) depth=0 OU = Domain Control […]

OpenSSL :: SSL :: SSLError:hostname与服务器证书不匹配

突然今天早上我的HTTP客户端(HTTParty)抛出了一个错误OpenSSL::SSL::SSLError: hostname does not match the server certificate 首先,我无法理解,今天我们几乎整天都在过去2年没有任何问题地拨打api电话 其次我不明白如何解决它,因为它是HTTParty内部的 我唯一知道的是我无法在ENV设置SSL_CERT_FILE ,但据说我已经在/etc/ssl/certs ( SSL_CERT_DIR )中列出了ROOT CA 在这里我的输出 irb(main):001:0> require “openssl” => true irb(main):002:0> puts OpenSSL::OPENSSL_VERSION OpenSSL 1.0.1 14 Mar 2012 => nil irb(main):003:0> puts “SSL_CERT_FILE: %s” % OpenSSL::X509::DEFAULT_CERT_FILE SSL_CERT_FILE: /usr/lib/ssl/cert.pem => nil irb(main):004:0> puts “SSL_CERT_DIR: %s” % OpenSSL::X509::DEFAULT_CERT_DIR SSL_CERT_DIR: /usr/lib/ssl/certs 最后,正如所说Openssl没有任何改变,代码明智的唯一的事情就是openssl版本引用HEARTBLEED漏洞的补丁 请注意,我们只修补openssl版本,但didnt recompile the RUBY可能是一个问题 […]

在Windows 7 x86上使用Ruby安装OpenSSL for eventmachine

在Windows 7 x86上使用Ruby安装OpenSSL for eventmachine。 我想在Windows 7 x86 SP1上安装eventmachine gem。 我从http://rubyinstaller.org/downloads/安装了rubyinstaller-2.1.5.exe 我还安装了DevKit-mingw64-32-4.7.2-20130224-1151-sfx.exe 。 我运行命令: gem install eventmachine –platform=ruby 至于现在这是使用eventmachine-1.0.4 。 我得到了以下控制台输出: Temporarily enhancing PATH to include DevKit… Building native extensions. This could take a while… ERROR: Error installing eventmachine: ERROR: Failed to build gem native extension. C:/Ruby21/bin/ruby.exe extconf.rb checking for main() in -lssl… no checking […]

使用OpenSSL在证书文件中读取Ruby错误

我试图从irb与ruby 1.8.7(或1.9.2)做一个简单的OpenSSL::X509::Certificate.new(File.read(“testuser.p12”)) ,两者的结果相同。 我得到的错误是OpenSSL::X509::CertificateError: nested asn1 error 这是一个ruby问题,还是这表明证书本身格式不正确? 我发现一些类似的报告围绕亚马逊证书展示了这些错误,结果certificate是证书本身。 它虽然在浏览器中工作。 关于如何解决这个问题的建议?

如何判断RVM安装的ruby实际上正在使用哪个openssl lib

我发现我可以使用以下任何命令成功安装ruby: $ rvm reinstall 1.9.3-p327 $ rvm reinstall 1.9.3-p327 –with-openssl-dir=/usr/local $ rvm reinstall 1.9.3-p327 –with-openssl-dir=/afdlkjasd_not_a_dir $ rvm reinstall 1.9.3-p327 –with-openssl-dirffadsf=/afdlkjasd_not_a_dir 无论我使用哪种上述命令,我都可以输入: $ rvm use 1.9.3-p327 Using /home/clay/rvm/gems/ruby-1.9.3-p327 $ which ruby /home/clay/.rvm/rubies/ruby-1.9.3-p327/bin/ruby $ ruby -e “puts require(‘openssl’)” true 无论我做什么,我似乎都有ssl支持。 我猜rvm或者ruby构建过程并不介意无效的选项或值。 我不知道–with-openssl-dir选项是否得到尊重,即使我正确地输入它(显然)。 rvm是否将我的ruby链接到我想要的openssl lib(/ usr / local中的那个)? 如何判断哪个openssl lib编译/链接了ruby? 我正在使用Linux Mint 13。

OpenSSL在Ruby 1.9.3中遇到麻烦

我在Ubuntu 12.04上遇到了OpenSSL 1.0.1 + Ruby 1.9.3的半严重问题。 所有ruby都安装了rvm require ‘uri’ require ‘net/http’ require ‘net/https’ endpoint = “https://secure.mmoagateway.com/api/transact.php” RUBY_184_POST_HEADERS = { “Content-Type” => “application/x-www-form-urlencoded” } body = “orderid=ae5dd847d9f31209cbffeeea076ed966&orderdescription=Active+Merchant+Remote+Test+Purchase&ccnumber=4111111111111111&ccexp=0913&cvv=123&company=Widgets+Inc&address1=1234+My+Street&address2=Apt+1&city=Ottawa&state=ON&zip=K1C2N6&country=CA&phone=%28555%29555-5555&firstname=&lastname=&email=&amount=1.00&type=auth&username=demo&password=password” headers = {} endpoint = endpoint.is_a?(URI) ? endpoint : URI.parse(endpoint) http = Net::HTTP.new(endpoint.host, endpoint.port) http.use_ssl = true http.verify_mode = OpenSSL::SSL::VERIFY_NONE http.set_debug_output(STDOUT) result = http.post(endpoint.request_uri, body, RUBY_184_POST_HEADERS.merge(headers)) puts(result) 在Ubuntu 12.04 […]