Correção para OpenSSL :: Cipher :: CipherError no Rails 4 com JRuby

OpenSSL::Cipher::CipherError in DealsController#index

Illegal key size: possibly you need to install Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files for your JRE

Rails.root: /Users/irio/Code/gardener
Application Trace | Framework Trace | Full Trace

org
/jruby/ext/openssl/Cipher.java:700:in `update'

Já existe uma página wiki no projeto JRuby relatando o porquê: https://github.com/jruby/jruby/wiki/UnlimitedStrengthCrypto

Vamos ver como.

  1. Baixe os arquivos de política de jurisdição de força ilimitada do Java Cryptography Extension (JCE) .
  2. Descompacte-o.
  3. Encontre as pastas onde os arquivos de política estão localizados (veja abaixo).
  4. Faça backup das políticas atuais ( *.jararquivos).
  5. Copie descompactado local_policy.jare US_export_policy.jarpara as pastas listadas, substituindo as existentes.

Reinicie seu aplicativo Rails e divirta-se trabalhando novamente.

$ cd /Library/Java/JavaVirtualMachines
$ find
. -name 'local_policy.jar'
./jdk1.8.0_40.jdk/Contents/Home/jre/lib/security/local_policy.jar