2013-04-12 40 views
6

Web hizmetlerini tüketmekle ilgili bir sorumluluğu değerlendiriyorum ... ancak SOAP web hizmetlerini sağlayan sunucuya karşı kimlik doğrulaması yapmak için SSL istemci tarafı sertifikasını kullanabiliyorsanız herhangi bir bilgi bulamıyorum. Belgeleri okudum ama bu konuda bir şey bulamadım.SAVON istemci tarafı sertifika kimlik doğrulamasını destekliyor mu?

SAVON istemci tarafı sertifika kimlik doğrulamasını destekleyip desteklemediğini bilen var mı?

Selamlar Fak

cevap

10

(şu anda 2.2.0) Savon en son kararlı sürümü küresel seçenekleri ile SSL istemci sertifikalarını destekler. Lütfen the documentation adresindeki SSL bölümüne bakın. - böylece onları bölmek isteyebilirsiniz bir pfx sertifikası/anahtar dosyası varsa

savonConfig = { 
    :namespace => "http://...com", 
    :endpoint => 'https://...:557/x/b/c', 
    #:wsdl => 'https://...:557/x/b/c?wsdl', 
    :log_level => :debug, 
    :log => true, 
    :ssl_verify_mode => :none, 
    :ssl_cert_file => 'publicCert.pem', 
    :ssl_cert_key_file => 'privateKey.pem', 
    :ssl_cert_key_password => '1234', 
    :open_timeout => 600, 
    :read_timeout => 600 
} 

client = Savon.client savonConfig 

soapBody = { 
... 
} 


calcResponse = client.call(:charge, :message => soapBody) 

, doğrudan bunu kullanarak sorunları olabilir: Burada

httpi kullanılır httpclient varsayarak bazı örnek kodudur Ayrı dosyalar halinde - bu sayfaya bakınız: Extract public/private key from PKCS12 file for later use in SSH-PK-Authentification

Yardım edin!
Daniel

+0

çok teşekkür ederiz alacak, bu seçenekler istemci certs içindi fark olmalı ('müşteri' olarak değildikleri varsayıldı). Bunu yapmak için httpclient kullanmanız gerektiğini de tahmin ediyorum ... –

+1

Savon sürüm 2'deki HTTP seçenekleri bir [HTTPI :: İstek] (http://httpirb.com/#requests) oluşturmak için kullanılır. Bu destekleniyorsa adaptöre bağlıdır. – rubiii

1
Biz SSL istemci auth ile değil aynı zamanda baypas konak doğrulama çalışmaya savon müşteri almaya çalışırken sorun yaşıyorsanız

....

https://github.com/savonrb/savon/issues/679

client = Savon.client(log_level: :debug, 
log: true, 
ssl_verify_mode: :none, 
ssl_cert_file: (Rails.root + 'signed.cer').to_s, 
ssl_cert_key_file: ('private.key').to_s, 
wsdl: "https://example.com/Service?wsdl", 
endpoint: "https://example.com/Service") 

beğendiniz HTTPI ile başarısız Wir.dhswir.org (net_http) için istek gönderin HTTPI :: SSLError: SSL_read: ssl el sıkışma hatası

no moe info ..

Savon 2.2.0, 2.3.0 ve 2.11.0'ı denedik. biraz değişken hata mesajları ile.

Karşılaştırmak için unix WGET kullanarak ve savonla aynı PEM biçimlendirilmiş anahtarını ve sertifikasını kullanıyoruz. WGET biz --no-check-sertifika geçmesi yoksa biz geçtiğini ekleyebilir ve SSL istemci kimlik doğrulama yapabilir ancak eğer başarısız ve erişim

wget 'https://example.com/CDC/VaccinationService?wsdl' --certificate=example-int-wi-signed.cer --private-key=private.key -O- --no-check-certificate 
İlgili konular