2010-11-19 48 views
2

Sunucuya SSL kullanarak bağlanmakta sorun yaşıyorum. ASIHTTPRequest kullanıyorum. Üstü bana verirKendinden imzalı SSL sertifikası kullanarak HTTPS'ye bağlanma

ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:[NSURL URLWithString:@"https://server:port"]]; 
//[request setValidatesSecureCertificate:NO]; 
[request setRequestMethod:@"POST"]; 
[request setTimeOutSeconds:10]; 

[request addRequestHeader:@"Host" value:@"server:port"];  
[request addRequestHeader:@"Content-Type" value:@"text/json; charset=utf-8"]; 

"Bir bağlantı hatası oluştu: SSL sorunu (muhtemelen kötü/dolmuş/otomatik olarak imzalanan sertifika)". Eğer satırı rahatsız edersem [request setValidatesSecureCertificate: NO]; 404.

Geliştirme ortamındaki sunucunun kendinden imzalı sertifika kullandığını biliyorum, üretim sunucusunda sertifika "thawte" ile imzalandı.

Bu yüzden sertifikayı kendime e-postayla gönderdim, cihazımda Mail uygulamasını kullanarak eke dokunun - ayarlarıma yönlendirdim ve sertifikayı yükledim. Tabii ki, kendinden imzalı olduğu için sertifikanın güvenilir olmadığını, ancak sertifikayla ilgili tek sorun olduğunu, süresinin dolmadığını vb. Bildiriyor.

Şimdi aynı yaklaşımı yapıyorum ve yine "Bir bağlantı" alıyor hatası oluştu: SSL sorunu (muhtemelen kötü/dolmuş/otomatik olarak imzalanan sertifika)" veya 404.

Ben de projeme sertifika eklendi ve aşağıdaki satırları ekleyin ettik:

NSData* certData = [NSData dataWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"cert" ofType:@"cer"]]; 

SecCertificateRef cert = SecCertificateCreateWithData(NULL, (CFDataRef)certData); 
[request setClientCertificates:[NSArray arrayWithObject:(id)cert]]; 

ama o değil hiçbir şeyi değiştiremezsin.

Bir şey mi eksik?

cevap

0

Bir tarayıcıdan aynı POST'u yapmak için firefox için REST client addon gibi bir şey kullanırdım. Sitenin gerçekten ne olduğunu görmek için. Sadece bir 404 belirtilen URL için sunucudan doğru yanıtı olabilir ve geçersiz sertifika sadece SSL anlaşmasının tamamlanmasını engelliyor olabilir, böylece hatayı asla görmezsiniz.

+0

Herhangi bir iyi tavsiye edebilir misiniz? Bazıları Firefox 4.0b7'de çalışmayacaklarını söylüyor. Ve btw eminim API ve http ve https kullanarak aynı şekilde çalışır. –

+0

Uyumluluk sorunları nedeniyle FF 4'e yükseltmedim, bu yüzden 'REST İstemcisinin' çalışıp çalışmadığını veya onunla çalışmadığını bilmiyorum. Eklentinin adı "REST İstemcisi" dir. Son zamanlarda, kendimi imzalı müşavirleri kullanmanın aslında bir para israfı olduğunu düşünüyorum. Her projede kendinden imzalı sertifikalar üzerinde çalıştım, onlarla ilgili sorunları çözmek için birkaç saat süren geliştirici süresine mal oldu. Şimdi müvekkillerime, gerçek bir sertifika için birkaç yüz dolarlık pony yapmayı ve geliştiriciler için başka bir engel çıkarmayı tavsiye ediyorum. –

+0

Sertifika sahibinin özel anahtarına sahipseniz, muhtemelen kendisinin imzaladığından beri yaptığınız gibi, SSL trafiğinin şifresini çözmek için WireShark'ı yapılandırabileceğinizi düşünüyorum. Bu, bağlantınızda neler olduğunu tam olarak öğrenmenize yardımcı olabilir. –

İlgili konular