Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Sign in to follow this  
Flavio Amorim

Executar comandos openssl apartir do java

Recommended Posts

Flavio Amorim

Boas pessoal, alguém pode ajudar com este problema!

Estou a tentar  criar um programa para criar uma autoridade de certificação de certificados x509, mas pretendia utilizar o openssl para gerar os certificados. E assim estou a tentar executar comandos a partir do java. Mas estou com um problema, quando crio o certificado é preciso preencher um pequeno formulário e não estou a conseguir fazer isso.

documentação sobre certificados: http://www.g-loaded.eu/2005/11/10/be-your-own-ca/

aqui vai o código

import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
*
* @author 
*/
public class Main {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {

        try {
           Runtime rt = Runtime.getRuntime();

                        // Executando comando OpenSSL
                Process pr = rt.exec("mkdir -m 0755 CA");
                        rt.exec("mkdir -m 0755 CA/myCA CA/private CA/certs CA/newcerts CA/crl");
                        rt.exec("cp openssl.my.cnf CA/");
                        rt.exec("chmod 0600 CA/openssl.my.cnf");
                        rt.exec("touch CA/index.txt");
                        rt.exec(new String[]{"/bin/sh", "-c", "echo '01' > CA/serial"});


                        rt.exec("openssl req -config CA/openssl.my.cnf -new -x509 -extensions v3_ca -keyout CA/private/cakey.pem -out CA/certs/cacert.pem -days 1825");
                        
          
                        rt.exec("teste");             
                        rt.exec("teste");
                        rt.exec("pt");
                        rt.exec("braga");
                        rt.exec("barcelos");
                        rt.exec("ubi");
                        rt.exec("di");
                        rt.exec("Flavio Amorim");
                        rt.exec("teste@gmail.com");

        } catch (IOException e) {
        }
    }
}

o problema começa neste comando

 rt.exec("openssl req -config CA/openssl.my.cnf -new -x509 -extensions v3_ca -keyout CA/private/cakey.pem -out CA/certs/cacert.pem -days 1825");

depois de fazer este comando é preciso preciso preencher todos os campos necessários para o certificado

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.