Java Self-Sign

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 ;)
 
Assim de repente, penso que te faltam alguns argumentos. Experimenta utilizar:

Código:
keytool -selfcert -keystore <nome_da_keystore> -alias <nome_da_key>
 
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 ;)
 
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:
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 ;)
 
Back
Topo