7
votes

Ruby génère un certificat auto-signé

J'essaie de générer un certificat auto-signé à Ruby, mais je rencontre des ennuis. C'est ce que j'ai actuellement en ce moment: xxx pré>

Lorsque j'essaie d'utiliser la clé privée générée et le certificat dans Apache, je reçois cette erreur: P>

require "openssl"
key = OpenSSL::PKey::RSA.generate(1024)
signature = key.sign(OpenSSL::Digest::SHA1.new, "data to sign")


1 commentaires

Quelqu'un qui sera intéressé que je prépare un exemple de CSR de Ruby, vous pouvez le trouver ici: gist.github.com/1922961


3 Réponses :


0
votes

J'ai depuis trouvé plusieurs très bonnes sources d'exemples utilisant openssl:

http://snippets.dzone.com/posts/show/6309

http: // projets .Reductivitivalabs.com / Projets / Puppet / Repository / Révisions / Master / Entry / Lib / Puppet / SSLCertificates.RB

http: / /Projects.Reductivalababs.com/projects/puppet/repository/revisisions/master/enterry/lib/puppet/sslcertificats/ca.rb

http: / /projects.reductivalababs.com/projects/puppet/repository/revisisions/master/ientry/lib/puppet/sslcertificates/certificat.rb

Je n'ai toujours pas trouvé de bonne documentation pour cela, bien que je ne pense pas que cela prendrait trop de temps pour écrire ce qui est dans les exemples.

J'ai aussi compris comment faire ce que je voulais du code source de marionnettes. J'espère que cela aide quelqu'un d'autre qui est frustré par le manque de documentation d'Openssl dans Ruby.


3 commentaires

Ah ... la nature transitoire du web. Moins de 2 ans plus tard, tous les liens ci-dessus sont cassés.


La structure de la source de marionnettes a également changé, mais les mêmes informations générales peuvent être glanées de leur repo github: GITUB.COM/PUPPETLABS/PUPPET/TREE/MASTER/LIB/PUPPET/SSL


Tous les liens sont cassés



2
votes

Il y a un Create_Self_signed_cert méthode dans webrick / ssl , qui est facile à comprendre et utile.


3 commentaires

Pouvez-vous s'il vous plaît fournir un exemple d'utilisation?


cert, rsa = webrick :: utils.create_self_signed_cert 1024, [["CN", "localhost"]]] ""


N'oubliez pas que nécessite 'webrick / https'



7
votes

J'ai créé une classe d'assistance pour cela à partir du code I levé directement de Le gist de Nickyp que j'ai trouvé sur une recherche Google. La seule dépendance dont vous avez besoin est le gemme OpenSSL ( GEM Install install openssl ) xxx

usage: xxx < / Pré>

Sortie: xxx


0 commentaires