Como assinar midlets com certificados digitais e certificar suas aplicações JME?

Pessoal, a quem precisar, escrevi um artigo no DevMobile que ensina assinar aplicações JME.

Como assinar midlets com certificados digitais e certificar suas aplicações JME?
http://devmobile.blog.br/2008/07/06/como-assinar-midlets-com-certificados-digitais-e-certificar-suas-aplicacoes-jme/

Espero que seja de ajuda a alguém.

Abraço.

[quote=npereirajr]Pessoal, a quem precisar, escrevi um artigo no DevMobile que ensina assinar aplicações JME.

Como assinar midlets com certificados digitais e certificar suas aplicações JME?
http://devmobile.blog.br/2008/07/06/como-assinar-midlets-com-certificados-digitais-e-certificar-suas-aplicacoes-jme/

Espero que seja de ajuda a alguém.

Abraço.[/quote]

Bom artigo e gostaria de acrescentar o seguinte:

:arrow: O certificado da Verisign não só permite assinar MIDlets como aplicações Java normal (desktop)
:arrow: O certificado da Verisign não é suportado por todos os modelos de um fabricante. Alguns aparelhos podem suportar, outros não, quem dita isto é o fabricante que decide quais certificados serão suportados (UTI Root, Tawte, Verisign,etc…)
:arrow: Aplicação assinada não é sinônimo de que as perguntas de acesso a rede, ao sistema de arquivos,etc, sumirão. Nos aparelhos que pude testar, a pergunta só vai sumir se após a aplicação assinada e instalada no aparelho, se o usuário ir no menu de opções e marcar que não quer mais perguntar ao usuário. Tal opção só fica habilitada ou existe para aplicações assinadas.

Portanto minha gente, antes de sair comprando o certificado da Verisign achando que vai resolver os seus problemas, faça o seguinte:

:arrow: Verifique quais certificados o aparelho suporta (via site ou entre em contato com o fabricante)
:arrow: Certificado tem prazo de validade para ser útil para assinar. Pense a respeito se vc gostaria que o certificado fosse válido por 1,2 ou 3 anos. Após este prazo, o certificado não mais vale para assinar as aplicações. Aplicações instaladas nos celulares continuam a rodar após o certificado expirar, pois a validade do certificado só é checada no momento da instalação da aplicação no aparelho. Quanto maior o prazo de validade, mais caro fica para comprar.

UTI Root x Verisign

UTI Root ou também conhecido como Javaverified é um orgão certificador o qual você paga para eles realizarem testes na tua aplicação e só aí então ela depois de testada e atendendo aos requisitos deles, você será certificado. É um processo caro e demorado

Verisign: Para obter o certificado basta ter a grana. Entrando no site dela você fornecer algumas informações, paga e em 2 dias ± o certificado é enviado. Sai mais barato que o UTI Root e é mais rápido também.

Maldita assinatura de aplicativo j2me… estou procurando como comprar de qual comprar a 1 tempão, mas cada vez mais fico desanimado com isso.

Phoda,

Att
Ricoldi

Pois é, a questão de comprar, não comprar, por que comprar, por que não comprar, de quem comprar, não foi meu objetivo no artigo.

Meu objetivo foi unicamente mostrar como assinar, depois de você já ter comprado. Muitos clientes exigem que sua aplicação seja certificada. Você não tem escolha.

Mas vale um novo artigo para discutir esses pontos acima, muito bem citados pelo boone :slight_smile:

Pena que eu esteja sem tempo.

Abraço

[quote=npereirajr]Pois é, a questão de comprar, não comprar, por que comprar, por que não comprar, de quem comprar, não foi meu objetivo no artigo.

Meu objetivo foi unicamente mostrar como assinar, depois de você já ter comprado. Muitos clientes exigem que sua aplicação seja certificada. Você não tem escolha.

Mas vale um novo artigo para discutir esses pontos acima, muito bem citados pelo boone :slight_smile:

Pena que eu esteja sem tempo.

Abraço[/quote]

Com certeza npereirajr, nem foi minha intenção criar um debate, foi só um desabafo, e foi um bom artigo, meus parabens e obrigado!

Att
Ricoldi.

Seguinte pessoal,

segui o tutorial do amigo ae, mas no final recebo a seguinte mensagem: keytool error: java.lang.Exception: Certificate reply does not contain public key for <key_wifindme>, alguem sabe o que pode estar acontecendo?

Obrigado

aeee galera to com o mesmo problema que o brother daki de cima!!!

da um help aeee cabeçada!!!

heeeeeeeelppppppppp

:?: :?: :?: :?: :?: :?: :?: :?:

:shock: :shock: :shock: :shock:

Caramba, que coincidência!! No meu trabalho eu também to com o mesmo problema! Alguém saberia como resolver???

Obrigada!

:?: :?: :?: :?: :?: :?:

:shock: :shock: :shock: :shock: :shock:

:? :? :? :? :? :?

:frowning: :frowning: :frowning: :frowning: :frowning:

:hunf: :hunf: :hunf: :hunf: :hunf:

:thumbdown: :thumbdown: :thumbdown: :thumbdown: :thumbdown:

Vocês que estão com o mesmo roblema aí em cima… vocês compraram o certificado para poder seguir o tutorial ou estão fazendo sem ter o certificado? O problema pode estar aí.

eu comprei um certificado junto a verisign e estou usando ele para isto, entrei em contato com eles e parece que houve um erro na hora de gerar o arquivo .csr pra mandar pra eles, to aguardando um novo certificado que ele ficaram de enviar com um .csr gerado de acordo como sugere o tutorial da propria verisign, espero q resolva logo e ai conto a historia aqui…

Ué…como a Verisign emite um certificado com erro pra vc ? Não foi você que colocou informações erradas na hora de gerar o CSR ?
Uma empresa como ela, comer bola na hora de emitir isto é difícel…
Quando te ligaram para confirmar as informações, vc não passou todas corretamente ?

Fiquei curioso sobre este caso. Nunca vi algo assim…

na verdade o erro foi meu ao gerar o arquivo .csr pra mandar pra eles, eu nao adicionei a informação do meu keystore, mas criei um outro e eles ja me mandaram e funcionou todo o processo de assinatura, mas agora quando vou intalar no celular o celular ainda diz: “Não há nenhuma assinatura, o aplicativo será tratado como não confiável. Deseja continuar a instalação?”.

Será que o celular não reconhece o certificado da verisign?

[quote=prmota]na verdade o erro foi meu ao gerar o arquivo .csr pra mandar pra eles, eu nao adicionei a informação do meu keystore, mas criei um outro e eles ja me mandaram e funcionou todo o processo de assinatura, mas agora quando vou intalar no celular o celular ainda diz: “Não há nenhuma assinatura, o aplicativo será tratado como não confiável. Deseja continuar a instalação?”.

Será que o celular não reconhece o certificado da verisign?[/quote]

Você não citou como está o seu arquivo JAD.

Confirmou que existem os atributos:

MIDlet-Jar-RSA-SHA1
MIDlet-Certificate-1-1…MIDlet-Certificate-1-2…MIDlet-Certificate-1-3…

Sem eles, o celular vai dar a esta mensagem mesmo, pois para a aplicação ser reconhecida como assinada, o JAD e o JAR tem que ser colocado no aparelho, e o JAD tem que ter estes atributos com os valores corretos.

entao este é o problema, eu estava enviando somente o .jar para o celuar, mas quando mando o .jar e o .jad e faço a intalação pelo .jad ai da tudo certo mesmo, entretando fica meio chato ter q enviar dois arquivos para o celular nao? imagina uma aplicação para ser distrubuida e ser usada por qualquer pessoa que tenha um celular com java isto seria um fator desaminador nao? teria alguma forma de juntar as duas coisas num aquivo unico a ser enviado aos aparelhos?

Não há problema algum em enviar o JAD junto. Na realidade, o correto seria SEMPRE enviar o JAD. Toda instalação deveria iniciar pelo JAD. Ocorre que alguns fabricantes, visando facilitar as coisas, permitem que se faça a instalação apenas pelo JAR. No caso de aplicações assinadas, SEMPRE é necessário o JAD.

Se você disponibilizar sua aplicação na web, para uma instalação via OTA, usando o navegador do celular, você deverá instalar usando a URL do JAD, não do JAR. O JAD se encarregará de informar ao instalador onde se encontra o JAR. Na verdade o usuário nem saberá que haviam 2 arquivos, ele verá apenas o JAD mesmo.

Mas se for instalar via cabo, ou via bluetooth, sim, o JAD sempre deve ser enviado junto ao JAR.

putz,

ja tinha testado a aplicação assinada e deu tudo certo, mas ai depois eu resolvi automatizar a assinatura no build usando o ant, e depois disso agora quando vou instalar a mesma aplicação assinada no celular, recebo a mensagem: “instalação da aplicação negada pelo servidor java”.

alguem ja viu isso?

Boa noite…
Estou iniciando no desenvolvimento de midlets e to com um projeto não tão trivial…

Preciso obter o CellID, que como a mairia aqui deve saber, é o nr identificador da antena que o aparelho está conectado no momento.

a forma que encontrei em todos os fóruns pra obter essa informação é SystemgetProperty(“CellID”)… porém, testei em aparelhos Nokia e Motorola, e sempre me retorna o valor NULL

Vi em alguns sites que algumas propriedades só funcionam quando o Midlet é assinado… gostaria de saber se é o caso do CellID… ou alguém que tenha certificado poderia testar essa propriedade…

Obrigado
Renato

[quote=RenatoLP]Boa noite…
Estou iniciando no desenvolvimento de midlets e to com um projeto não tão trivial…

Preciso obter o CellID, que como a mairia aqui deve saber, é o nr identificador da antena que o aparelho está conectado no momento.

a forma que encontrei em todos os fóruns pra obter essa informação é SystemgetProperty(“CellID”)… porém, testei em aparelhos Nokia e Motorola, e sempre me retorna o valor NULL

Vi em alguns sites que algumas propriedades só funcionam quando o Midlet é assinado… gostaria de saber se é o caso do CellID… ou alguém que tenha certificado poderia testar essa propriedade…

Obrigado
Renato[/quote]

Sim, é isto mesmo. Por ser uma informação sensível, não é qualquer aplicação que vem e obtem a posição do usuário, mesmo que esta não tenha tanta precição assim, como é o caso do Cell-ID.

Dificelmente você encontrará algum aparelho (acredito q não encontre) que permita obter isto sem a aplicação estar assinada. Mesmo estando assinada, ainda assim não é garantido de obter visto que fabricantes como SonyEricsson e Nokia só disponibilizam este recurso para celulares mais parrudo$.

Alguém tem certificado que possa testar essa funcão CellID ?
Entrei em contato com a Verisign e me informaram que eu necessido adquirir um SDK que o valor varia de 30 mil a 200 mil reais…
Alguém tem noção de valores e qual é o certificado que devo adquirir ?