2016-03-28 21 views
1

Apache proxy olarak nginx ile debian üzerinde bir php sabunu sunucusu api kurulumu var. Sabun çağrı üzerine çalışıyor http ancak üzerindephp soap api çağrısı https çalışmıyor

server { 

    listen 443 ssl; 
    server_name <sub domain name>; 

    ssl on; 
    ssl_certificate /etc/nginx/ssl/dev/wildcard.<dm name>-chained.crt; 
    ssl_certificate_key /etc/nginx/ssl/dev/wildcard.<dm name>.key; 

    location/{ 
    proxy_redirect off; 
    proxy_pass https://localhost:8081; 
    proxy_set_header Host $host; 
    proxy_set_header X-Real-IP $remote_addr; 
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
    proxy_set_header X-Forwarded-Proto $scheme; 
    } 

} 
    server { 
    listen 80; 
    # return 301 https://$host$request_uri; 
    server_name <sub domain name>; 
    location/{ 
    proxy_pass http://<server ip>:8080; 
    proxy_set_header Host $host; 
    proxy_set_header X-Real-IP $remote_addr; 
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
    proxy_set_header X-Forwarded-Proto $scheme; 
    } 
} 

aşağıdaki gibi ve apache yapılandırma

şöyle ben apache ports.conf değişti

<VirtualHost *:8081> 
    ServerName <my sub domain> 
    ServerAlias www.<my sub domain> 


    SSLEngine on 
    SSLCertificateFile /etc/nginx/ssl/dev/wildcard.<dm name>-chained.crt 
    SSLCertificateKeyFile /etc/nginx/ssl/dev/wildcard.<dm name>.net.key 

    #SSLProtocol ALL -SSLv2 -SSLv3 
    #SSLVerifyClient none 
    #SSLVerifyDepth 1 
    #SSLHonorCipherOrder On 

    #SSLCipherSuite  

    DocumentRoot /var/www/<project folder> 
    <Directory /var/www/<project folder>> 
     Options FollowSymLinks -Indexes 
     AllowOverride All 
     Order Allow,Deny 
     Allow from all 
     SSLRequireSSL 
    </Directory> 
</VirtualHost> 

aşağıdaki gibidir

nginx yapılandırma https

NameVirtualHost *:8080 
    Listen 8080 

<IfModule mod_ssl.c> 
    NameVirtualHost *:8081 
    # # If you add NameVirtualHost *:443 here, you will also have to change 
    # # the VirtualHost statement in /etc/apache2/sites-available/default-ssl 
    # # to <VirtualHost *:443> 
    # # Server Name Indication for SSL named virtual hosts is currently not 
    # # supported by MSIE on Windows XP. 
    Listen 8081 
</IfModule> 

<IfModule mod_gnutls.c> 
    Listen 8081 
</IfModule> 

lütfen neyi özledim burada. yerelde php istemcisini kullandığımda ve bir sabun çağrısı yaptığımda url http ise, ancak url https ise işe yaramazsa, herhangi bir yardımcı hata iletisi de görmüyorum.

cevap

0

Etki alanınız için sertifikanız localhost için geçerli olmayacak, dolayısıyla Nginx bunu reddedecektir. Yine de localhost'a bağlanırken SSL'ye ihtiyacınız yoktur, bu yüzden sadece HTTPS dinleyicisini Nachex proxy'sini Apache'nin HTTP dinleyicisine yapın.

+0

Teşekkürler. Bu değişikliği yaptım hala çalışmıyor. nginx HTTPS dinleyicisini proxy_pass adresine değiştirdim http: // : 8080; numaralı telefondan https üzerinden tarayıcımı kullanarak sabun dosyasına erişebilirim ancak basit php sabunu istemci çağrısı çalışmıyor $ vLocation = 'https: // '; $ client = new SoapClient ("", dizi ( "location" => $ vLocation, "trace" => 1, 'cache_wsdl' => WSDL_CACHE_NONE )); $ vFunctions = $ müşteri -> __ getFunctions(); Bulduğumda aynı php sabun uygulamam sankonun yapılandırmasına erişimi olmayan farklı bir sunucuda barındırılan – manoveg

+0

çalışır openssl s_client -Donanımı alıyorum -ssl3 'BAĞLI (00000003) 140735331525456: hata: 1409E0E5: SSL rutinleri: SSL3_WRITE_BYTES: ssl el sıkışma hatası: s3_pkt.c: 598: 'Ben nginx yapılandırma ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2 aşağıdaki gelmiş ; herhangi bir fikir – manoveg