第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Wss Webserver 無法使用自簽名密鑰正常工作

Wss Webserver 無法使用自簽名密鑰正常工作

PHP
回首憶惘然 2021-11-26 19:35:20
我使用 php React 和 Ratchet 創(chuàng)建了一個 PHP 安全 websocket (wss) 服務器。我只有一個自簽名證書,因為我目前只是嘗試將我的服務器用作應用程序的后端,所以我不需要域名,因為它僅供應用程序訪問,而不是供人們訪問直接,因此必須為此訂閱域名似乎是浪費金錢,而且在獲得受信任的 ssl 證書之前我需要一個域名,無論如何我擁有服務器。話雖如此,這是我的代碼安全套接字server.php:<?phpuse React\Socket\SecureServer;require dirname(__DIR__) . '/vendor/autoload.php';require 'Pool.php';$loop = React\EventLoop\Factory::create();$webSock = new React\Socket\Server('0.0.0.0:<my_port>', $loop);$webSock = new React\Socket\SecureServer($webSock, $loop, [    'local_cert'        => '<my_ssl_cert_path>.pem',    'local_pk'          => '<my_ssl_cert_key>.key',    'allow_self_signed' => TRUE,    'verify_peer' => TRUE,    'allow_self_signed' => TRUE]);$webServer = new Ratchet\Server\IoServer(    new Ratchet\Http\HttpServer(        new Ratchet\WebSocket\WsServer(            new Pool()        )    ),    $webSock,    $loop);$webServer->run();我跑php secure-web-socket.php我嘗試從 Android 連接到它,但出現(xiàn)“握手失敗”另外,當我跑./testssl.sh <my_host_ip>:<my_port>我得到:<my_host_ip>:<my_port> doesn't seem to be a TLS/SSL enabled server如果我使用: ./testssl.sh <my_host_ip>:443我實際上得到的結果表明它是一個啟用了 TLS/SSL 的服務器。在我的 nginx 文件中,我有:server {        listen 80 default_server;        listen [::]:80 default_server;        # SSL configuration        #        listen 443 ssl default_server;        listen [::]:443 ssl default_server;        include snippets/<my_certificate_config_file>.conf;        root /usr/share/nginx/html;        # Add index.php to the list if you are using PHP        index index.php index.html index.htm index.nginx-debian.html;并重新啟動了 nginx,但這導致我在https://my_host_ip/下的網(wǎng)頁無法連接。而且,加上該解決方案,即使它有效,也只允許我在一個端口上安全地運行我的套接字服務器,而不是任何可用的端口。我如何讓這個工作?更新:我通過了這些問題,但現(xiàn)在正在處理 android 得到“預期 101,收到:500”
查看完整描述

1 回答

?
飲歌長嘯

TA貢獻1951條經(jīng)驗 獲得超3個贊

所以,我設法讓它一切正常。首先,對于握手失敗的部分,我可能有錯誤的路徑:

 'local_cert'        => '<my_ssl_cert_path>.pem', 
 'local_pk'          => '<my_ssl_cert_key>.key',

因為我創(chuàng)建了一個新的證書和密鑰并使用了它們,并且我在 android 客戶端使用的tech.gusavila92.websocketclient.WebSocketClient ` 類中通過了“握手失敗”錯誤。

在那之后,我在 WebSocket 類中出現(xiàn)了“預期 101,得到 500”錯誤。我做了一些挖掘,發(fā)現(xiàn)這是因為我不能使用new WebSocketClient("wss://ip-address:port");,但我必須使用new WebSocketClient("wss://ip-address:port/");,注意額外的斜線。

這是理由。顯然頭的第一行是使用“GET raw_url 1.1”構建的,如果沒有斜線,則會得到“GET HTTP/1.1”,但 PHP Guzzle 想要看到“GET / HTTP/1.1”,而不是“ GET HTTP/1.1",或者在解析標頭時拋出異常。在這種情況下,raw_url 是 :port 之后的所有內容,所以如果你不加“/”,你會得到一個空白的 raw_url,所以你會得到“GET HTTP/1.1”,但是如果你在后面加一個斜杠,你會得到“GET / HTTP/1.1"


查看完整回答
反對 回復 2021-11-26
  • 1 回答
  • 0 關注
  • 402 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號