CERTIFICADO A1 IIS6

LUISNET10 09/11/2010 19:21:09
#357036

Por favor, alguem já fez isso, ja estou a 4 dias tentando e não consigo instalar o certificado A1 no IIS6.

Aguardo uma ajuda, por favor.. mesmo que seja para falar q não dá..rs
OTAVIOFAVERO 28/12/2010 19:36:31
#360567
nao da para instalar no iis6 mas da para intalar no servidor que possua o iis6

mas vc usar o certificado a1 nas portas tls 433 nao e possivel em windows server mas no iis do win xp e possivel


abç
LUISNET10 28/12/2010 20:14:00
#360571

Ok, vamos la,...

Amigo vc ja conseguiu usar o certificado A1 em uma aplicacao web., instalar no servidor o certificado eu consigo, mas qd tento acessar o certificao com o site rodando no iis nao vai, agora qd eu rodo o site pelo visual studio ele encontra o certificado.

Se vc ja conseguiu, eu estou ate disposto a pagar para conseguir fazer o mesmo, dependo muito disso, e ainda nao consegui, estou fazendo os clientes transmitirem de um sistema desktop q fiz so para transmitir, pois pelo browser nao consegui..

Aguardo um retorno, obrigado.
POWER.SKILFUL 28/12/2010 23:28:18
#360582
RS Qdo eu penso que estou começando a entender esse IIS vc aparece com um monte de coisa maluca.rs

Ok vamos tentar nos ajudar.
O que é Certificado A1. PRa que serve?

O que na verdade vc esta tentando fzr? Vc tah querendo Soh abrir a sua pagina em um pc externo é isso:?

Vc tem uma rede ou esta com o pc ligado direto no modem?


Obs: Esse negocio de IIs é bem complexo eu tomei um cacete essa semana pra tentar fzr o cliente acessar meu banco de dados. Ate depois de muitas leituras e testes consegui e pior de td... eu tinha que fzr uma coisa besta de td.
MARCOSLING 28/12/2010 23:49:34
#360586
Citação:

:
RS Qdo eu penso que estou começando a entender esse IIS vc aparece com um monte de coisa maluca.rs

Ok vamos tentar nos ajudar.
O que é Certificado A1. PRa que serve?

O que na verdade vc esta tentando fzr? Vc tah querendo Soh abrir a sua pagina em um pc externo é isso:?

Vc tem uma rede ou esta com o pc ligado direto no modem?


Obs: Esse negocio de IIs é bem complexo eu tomei um cacete essa semana pra tentar fzr o cliente acessar meu banco de dados. Ate depois de muitas leituras e testes consegui e pior de td... eu tinha que fzr uma coisa besta de td.



Na realidade, quem tem que entender de IIS é o pessoal que cuida de infraestrutura. Nós desenvolvedores precisamos apenas nos preocupar em desenvolver a aplicação.
Mas... na prática, em ambientes com poucos recursos, temos que conhecer um pouco de tudo.
LUISNET10 06/01/2011 09:16:14
#361320
Vamos, vou tentar ser mais claro..

Tenho uma aplicacao em asp.net que gera a nota fiscal eletronica e transmiti para a receita... logo essa aplicacao funciona no iis, quando rodo a aplicacao pelo visual studio eu consigo acesso ao certificado digital, quando abro ela pelo iis, nao me da acesso...

Entao crei um programa windows forms, para transmitir, por esse programa ele tb consegue acesso ao certificado, mas quero que o sistema em asp.net obtenha esse acesso..

|Pediram para eu instalar o certificado no proprio ii6, eu já fiz mesmo assim ainda nao consegui esse acesso.

Se alguem tem algum sistema q funcione no browser e ja tenha conseguido esse acesso, estou disposto até a pagar para conseguir essa solução e muito importante para mim..

Obrigado.
LWALMEIDA 17/02/2011 11:59:50
#365735
Luis.
Tambem estou passando por esse problema e ja resolvemos parte, o problema esta dividido em algumas partes:

1 - Em asp não é possivel abrir o certificado no modo interativo (escolher o certificado do cliente através da tela de certificado), voce tem que passar parametros para não precisar escolher o certificado.

2 - Em asp o certificado tem que estar localizado do Computador Local (local machine) do servidor do IIS e não na conta de Usuario como no Windows Forms.

3 - Agora tem um outro problema que nossa equipe esta trabalhando ainda, que o webservice da receita resolve não aceitar a conexão segura SSL/TLS..., isso me parece algum detalhe no IIS. no meu caso usamos o IIS 7.5

Qualquer duvida enter em contato para trocarmos outras idéias
LWALMEIDA 17/02/2011 17:01:39
#365799
Resposta escolhida
terceiro problema resolvido!!!
LUISNET10 17/02/2011 18:13:01
#365809
Amigo, eu te enviei um e-mail para lwalmeida@hotmail.com, gostaria de estar conversando com vc.... isso e muito importante para mim.


Assim q le isso, me mande um e-mail..


desenvolvimento@saurus.com.br ou luisnet10@hotmail.com

valeu.. ate mais.
LUISNET10 08/04/2011 11:44:30
#370828
Graças a ajuda do LWALMEIDA... conseguimos resolver o problema....

Passo a Passo.....

Vc deve ter o arquivo .pfx.... se tiver no XP entre no IE.. opcoes, conteudo, certificado e exporte o certificado com a chave particular...


No windows 2003 .. clique em inicia executar. mmc (ok)

Menu File.
Add/Remove Snap-In
Add
Certificates (Add)
computer Account
Local computer (Finish)

no TreeView...
Va. em Personal
Certicates (Botao Direito)
All Tasks - Import.
Selecione o Arquivo.
Depois de importado.. pode fechar tudo..

Procure por este programa
winhttpcertcfg.msi

Depois execute pelo PROMPT..

winhttpcertcfg.exe -g -c LOCAL_MACHINE\MY -s [Ô]NOME DA EMPRESA[Ô] -a [Ô]NETWORKSERVICE[Ô]
winhttpcertcfg.exe -l -c LOCAL_MACHINE\MY -s [Ô]NOME DA EMPRESA[Ô]

pronto...
Tive outro problema para acessar usando o codigo antigo.. mudei o codigo tb...
public class Certificado
{
public X509Certificate2 BuscaNome(string Nome)
{
X509Certificate2 _X509Cert = new X509Certificate2();
try
{

X509Store store = new X509Store([Ô]MY[Ô], StoreLocation.CurrentUser);
store.Open(OpenFlags.ReadOnly | OpenFlags.OpenExistingOnly);
X509Certificate2Collection collection = (X509Certificate2Collection)store.Certificates;
X509Certificate2Collection collection1 = (X509Certificate2Collection)collection.Find(X509FindType.FindByTimeValid, DateTime.Now, false);
X509Certificate2Collection collection2 = (X509Certificate2Collection)collection.Find(X509FindType.FindByKeyUsage, X509KeyUsageFlags.DigitalSignature, false);
if (Nome == [Ô][Ô])
{
X509Certificate2Collection scollection = X509Certificate2UI.SelectFromCollection(collection2, [Ô]Certificado(s) Digital(is) disponível(is)[Ô], [Ô]Selecione o Certificado Digital para uso no aplicativo[Ô], X509SelectionFlag.SingleSelection);
if (scollection.Count == 0)
{
_X509Cert.Reset();
Console.WriteLine([Ô]Nenhum certificado escolhido[Ô], [Ô]Atenção[Ô]);
}
else
{
_X509Cert = scollection[0];
}
}
else
{
X509Certificate2Collection scollection = (X509Certificate2Collection)collection2.Find(X509FindType.FindBySubjectDistinguishedName, Nome, false);
if (scollection.Count == 0)
{
Console.WriteLine([Ô]Nenhum certificado válido foi encontrado com o nome informado: [Ô] + Nome, [Ô]Atenção[Ô]);
_X509Cert.Reset();
}
else
{
_X509Cert = scollection[0];
}
}
store.Close();
return _X509Cert;
}
catch (System.Exception ex)
{
Console.WriteLine(ex.Message);
return _X509Cert;
}
}

public X509Certificate2 SelecionaCertificado(string CerSerie)
{
X509Certificate2 certificate = new X509Certificate2();
X509Certificate2Collection certificatesel = new X509Certificate2Collection();
X509Store store = new X509Store([Ô]MY[Ô], StoreLocation.LocalMachine);
store.Open(OpenFlags.OpenExistingOnly);

X509Certificate2Collection certificates = store.Certificates.Find(X509FindType.FindByTimeValid, DateTime.Now, true).Find(X509FindType.FindByKeyUsage, X509KeyUsageFlags.DigitalSignature, true);

try
{

if (string.IsNullOrEmpty(CerSerie))
{
if (certificatesel.Count == 0)
{
certificate.Reset(); return null;
}
else
{
certificate = certificatesel[0];
}
}
else
{
certificatesel = certificates.Find(X509FindType.FindBySerialNumber, CerSerie, true);
if (certificatesel.Count == 0)
{
certificate.Reset(); return null;
}
else
{
certificate = certificatesel[0];
}
}
store.Close();
return certificate;
}
catch
{
return null;
}
}

public X509Certificate2 BuscaNroSerie(string NroSerie)
{

NroSerie = (NroSerie == [Ô]xxx[Ô]) ? string.Empty : NroSerie;

X509Certificate2 _X509Cert = new X509Certificate2();


if (SelecionaCertificado(NroSerie) != null)
{
return SelecionaCertificado(NroSerie);
}

try
{
X509Store store = new X509Store([Ô]MY[Ô], StoreLocation.CurrentUser);
store.Open(OpenFlags.ReadOnly | OpenFlags.OpenExistingOnly);
X509Certificate2Collection collection = (X509Certificate2Collection)store.Certificates;
X509Certificate2Collection collection1 = (X509Certificate2Collection)collection.Find(X509FindType.FindByTimeValid, DateTime.Now, false);
X509Certificate2Collection collection2 = (X509Certificate2Collection)collection.Find(X509FindType.FindByKeyUsage, X509KeyUsageFlags.DigitalSignature, false);
if (NroSerie == [Ô][Ô])
{
X509Certificate2Collection scollection = X509Certificate2UI.SelectFromCollection(collection2, [Ô]Certificados Digitais[Ô], [Ô]Selecione o Certificado Digital para uso no aplicativo[Ô], X509SelectionFlag.SingleSelection);
if (scollection.Count == 0)
{
_X509Cert.Reset();
Console.WriteLine([Ô]Nenhum certificado válido foi encontrado com o número de série informado: [Ô] + NroSerie, [Ô]Atenção[Ô]);
}
else
{
_X509Cert = scollection[0];
}
}
else
{
X509Certificate2Collection scollection = (X509Certificate2Collection)collection2.Find(X509FindType.FindBySerialNumber, NroSerie, false);
if (scollection.Count == 0)
{
_X509Cert.Reset();
Console.WriteLine([Ô]Nenhum certificado válido foi encontrado com o número de série informado: [Ô] + NroSerie, [Ô]Atenção[Ô]);
}
else
{
_X509Cert = scollection[0];
}
}
store.Close();
return _X509Cert;
}
catch (System.Exception ex)
{
Console.WriteLine(ex.Message);
return _X509Cert;
}
}
}


Tente alguma dessas classes.. uma da certo.










Tópico encerrado , respostas não são mais permitidas