CERTIFICADO A1 IIS6
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
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ç
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ç
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.
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.
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.
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.
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.
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.
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
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
terceiro problema resolvido!!!
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.
Assim q le isso, me mande um e-mail..
desenvolvimento@saurus.com.br ou luisnet10@hotmail.com
valeu.. ate mais.
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.
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