<li id="c4loq"><acronym id="c4loq"></acronym></li>

<button id="c4loq"></button>
    <dd id="c4loq"><pre id="c4loq"></pre></dd>

      <th id="c4loq"></th>

        <dd id="c4loq"></dd>

        幫助中心 > 安全 > 高防IP > 常見問題 > 高防IP如何實現基于SSL的TCP 連接?

        高防IP如何實現基于SSL的TCP 連接?

        高防IP如何實現基于SSL的TCP 連接?

        應用場景

        在一般使用中,我們在web應用中,將SSL證書用于HTTP協議或websocket 的訪問上。但是對于TCP 服務中,SSL 使用的不多,本文將介紹如何使用高防IP實現基于SSL的TCP連接,更好的對請求進行加密

        名詞介紹

        單向認證:服務端不驗證客戶端證書.只要TCP client 使用TCP SSL 模式連接即可
        雙向認證:服務端也驗證客戶端的證書.服務端需要開啟 ssl_verify_peer,同時 ssl_client_cert_file 添加簽發客戶端證書的根證書

        操作流程

        1.在高防IP的非網站防護中,添加TCP的轉發端口,源端口和源IP

        2. 源中,建立TCP SSL server(以PHP SWOOLE 實現單向認證 為例)
        set(array(
            'ssl_cert_file'=>'/data/swoole/cert/ssl.pem',
            'ssl_key_file'=>'/data/swoole/cert/ssl.key',
        ));
        
        //監聽連接進入事件
        $server->on('Connect', function ($server, $fd) {
            echo "Client: Connect.\n";
        });
        
        //監聽數據接收事件
        $server->on('Receive', function ($server, $fd, $from_id, $data) {
           $fd_info = $server->getClientInfo($fd);
        
            $server->send($fd, "Server: " . $data);
        });
        
        //監聽連接關閉事件
        $server->on('Close', function ($server, $fd) {
            echo "Client: Close.\n";
        });
        
        //啟動服務器
        $server->start(); 
        
        ?>
        
        建立TCP SSL server(以PHP SWOOLE 實現雙向認證 為例)
        set(array(
            'ssl_cert_file'=>'/data/swoole/cert/ssl.pem',//服務端證書
            'ssl_key_file'=>'/data/swoole/cert/ssl.key',
            'ssl_verify_peer'       => true,
            'ssl_allow_self_signed' => true,//允許使用自簽證書
            'ssl_client_cert_file'  =>'/data/swoole/cert/self/ca.crt',//簽發客戶端證書的根證書
        ));
        
        //監聽連接進入事件
        $server->on('Connect', function ($server, $fd) {
            echo "Client: Connect.\n";
        });
        
        //監聽數據接收事件
        $server->on('Receive', function ($server, $fd, $from_id, $data) {
           $fd_info = $server->getClientInfo($fd);
        
            $server->send($fd, "Server: " . $data);
        });
        
        //監聽連接關閉事件
        $server->on('Close', function ($server, $fd) {
            echo "Client: Close.\n";
        });
        
        //啟動服務器
        $server->start(); 
        
        ?>
        
        3. 建立SSL類型的TCP CLIENT (以PHP SWOOLE 實現單向認證 為例)
        connect('x.x.x.x', 8082, -1)) {
            exit("connect failed. Error: {$client->errCode}\n");
        }
        
        for($i = 0;$i<=10000;$i++){
            
          $client->send("hello world\n");
          echo $client->recv();
          sleep(2);
        }
        $client->close();
        
        建立SSL類型的TCP CLIENT (以PHP SWOOLE 實現雙向認證 為例)
        set(array(
            'ssl_cert_file'=>'/data/swoole/cert/self/client.crt',//客戶端證書
            'ssl_key_file'=>'/data/swoole/cert/self/client.key',
            ));
        if (!$client->connect('123.129.219.113', 8082, -1)) {
            exit("connect failed. Error: {$client->errCode}\n");
        }
        
        for($i = 0;$i<=10000;$i++){
            
          $client->send("hello world\n");
          echo $client->recv();
          sleep(2);
        }
        $client->close();
        
        4.也可以使用openssl 庫來作為client
        openssl s_client -connect IP:444
        黄片免费无马赛克

        <li id="c4loq"><acronym id="c4loq"></acronym></li>

        <button id="c4loq"></button>
        <dd id="c4loq"><pre id="c4loq"></pre></dd>

          <th id="c4loq"></th>

            <dd id="c4loq"></dd>