1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Java Self-Sign

Discussão em 'Programação' iniciada por Jonybat, 29 de Maio de 2009. (Respostas: 4; Visualizações: 935)

  1. Jonybat

    Jonybat Folding Member

    Boas

    Tenho uma página pessoal com parte de administração do servidor, e a mesma tem um terminal em java para se aceder ao bash por ssh.

    O terminal escolhido foi o Mindterm, que tem umas funcionalidades acrescidas bastante interessantes, das quais se destaca o FTP sobre SSH. O contra é que para se ter acesso a essas funcionalidades é necessário que a aplicação esteja certificada. É óbvio que não vou pagar por um certificado validado.

    Descobri então que era possível assinar a aplicação com um certificado gerado na própria máquina.
    Fui ler um pouco sobre o assunto e cheguei a um ponto que não consigo ultrapassar, e sobre o qual só existe um relato "no google" e que curiosamente a solução não se aplica.

    O que eu sei até agora é o seguinte:

    Código:
    keytool -genkey -keystore <nome_da_keystore> -keyalg RSA -alias <nome_da_key>
    Passwords e a informação da chave (CName, OU, etc) preenchidos e tudo ok.

    O problema chega quando vou para gerar o certificado para essa chave...

    Código:
    keytool -selfcert -alias <nome_da_key>
    Dá-me o seguinte erro:

    keytool error: java.lang.IllegalStateException: not encrypted


    Dado que eu não consigo encontrar muito acerca disso (e que saltei de para quedas para o meio disto, sinceramente) é normal que eu esteja a falhar alguma coisa básica. Simplesmente já gastei o teclado de tanto procurar :rolleyes:

    Agradeço conselhos ;)
     
  2. AliFromCairo

    AliFromCairo Power Member

    Assim de repente, penso que te faltam alguns argumentos. Experimenta utilizar:

    Código:
    keytool -selfcert -keystore <nome_da_keystore> -alias <nome_da_key>
     
  3. Jonybat

    Jonybat Folding Member

    Boas

    Sim, eu meti isso só que me esqueci de escrever...Se não metesse ele dizia que a default keystore (.keystore) não existia ou outro erro de keystore inválida.

    Sobre o problema em si, já o ultrapassei. Afinal ele estava explicado no tal tópico...eu é que estava a ver do ponto errado. Desinstalei o pacote jdk default e instalei o o jdk 6 da sun. Como não podia ser fácil demais para ser verdade, acabou por não resultar.

    Código:
    keytool -genkey -keystore <nome_da_keystore> -keyalg RSA -alias <nome_da_key>
    
    keytool -selfcert -keystore <nome_da_keystore> -alias <nome_da_key>
    
    jarsigner -keystore "/root/<nome_da_keystore>" <nome_do_ficheiro> <nome_da_key>
    
    O único problema que tive foi nesta última parte, que dava o erro "jarsigner error: java.lang.RuntimeException: keystore load: Invalid keystore format", e após um pouco de googling descobri que se tinha que meter o caminho completo para a keystore.

    O problema agora é que a aplicação deixou de funcionar. Tudo o que aparece na consola é isto:

    Código:
    load: class com.mindbright.application.MindTerm.class not found.
    java.lang.ClassNotFoundException: com.mindbright.application.MindTerm.class
        at sun.plugin2.applet.Applet2ClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.plugin2.applet.Plugin2ClassLoader.loadCode(Unknown Source)
        at sun.plugin2.applet.Plugin2Manager.createApplet(Unknown Source)
        at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)
    Caused by: java.io.IOException: open HTTP connection failed:http://192.168.1.1/com/mindbright/application/MindTerm/class.class
        at sun.plugin2.applet.Applet2ClassLoader.getBytes(Unknown Source)
        at sun.plugin2.applet.Applet2ClassLoader.access$000(Unknown Source)
        at sun.plugin2.applet.Applet2ClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        ... 7 more
    Exception: java.lang.ClassNotFoundException: com.mindbright.application.MindTerm.class
    
    Ainda pensei que fosse um problema de permissões e mandei-lhe um chmod 777, mas nada resolveu :(

    Agradeço ajuda ;)
     
  4. AliFromCairo

    AliFromCairo Power Member

    Boas, caso seja possível, coloca aqui o log dos erros do Apache (assumo que é Apache). Verifica também as permissões do .htaccess (se tiveres).
     
    Última edição: 30 de Maio de 2009
  5. Jonybat

    Jonybat Folding Member

    Eu não acredito nisto...é estúpido demais para ser verdade. O problema agora no fim que já me estava a dar cabo da cabeça foi uma typo no código html, que ia carregar a aplicação, daí os erros estranhos.

    Código:
    <APPLET CODE="com.mindbright.application.MindTerm.class"
    ARCH[COLOR=Red][B][U]E[/U][/B][/COLOR]VE="mindterm.jar" WIDTH=580 HEIGHT=420>
    <PARAM NAME="menus" value="popN">
    </APPLET>
    Bom, de qualquer maneira já está resolvido, e agradeço o interesse.

    Cumps ;)
     

Partilhar esta Página