日韩一区,国产二区,欧美三区,日本大片在线看黄a∨免费,欧美人体做爰大胆视频,欧洲美女黑人粗性暴交视频,日,韩,欧美一区二区三区

首頁>文檔>高防IP>高防IP實(shí)現(xiàn)基于SSL的TCP連接

此組別內(nèi)的文章

需要支持?

如果通過文檔沒辦法解決您的問題,請?zhí)峤还潍@取我們的支持!

高防IP實(shí)現(xiàn)基于SSL的TCP連接

應(yīng)用場景

在一般使用中,我們在Web應(yīng)用中,將SSL證書用于HTTP協(xié)議或Websocket的訪問上。但是TCP服務(wù)SSL使用的不多,本文介紹如何使用高防IP實(shí)現(xiàn)基于SSL的TCP連接,更好地對請求進(jìn)行加密

名詞介紹
單向認(rèn)證:服務(wù)端不驗(yàn)證客戶端證書,只要TCP client使用TCP SSL模式連接即可。
雙向認(rèn)證:服務(wù)端驗(yàn)證客戶端的證書,服務(wù)端需要開啟ssl_verify_peer,同時(shí)ssl_client_cert_file添加簽發(fā)客戶端證書的根證書。

操作流程

  1. 在高防IP的非網(wǎng)站防護(hù)中,添加TCP的轉(zhuǎn)發(fā)端口、源端口和源IP。
    高防IP實(shí)現(xiàn)基于SSL的TCP連接插圖
  2. 在源站服務(wù)器中,建立TCP SSL server。
    以PHP SWOOLE實(shí)現(xiàn)單向認(rèn)證為例:
php
$server = new Swoole\Server('0.0.0.0', 8082,SWOOLE_PROCESS, SWOOLE_SOCK_TCP | SWOOLE_SSL);
$server->set(array(
 'ssl_cert_file'=>'/data/swoole/cert/ssl.pem',
 'ssl_key_file'=>'/data/swoole/cert/ssl.key',
));
//監(jiān)聽連接進(jìn)入事件
$server->on('Connect', function ($server, $fd) {
 echo "Client: Connect.\n";
});
//監(jiān)聽數(shù)據(jù)接收事件
$server->on('Receive', function ($server, $fd, $from_id, $data) {
$fd_info = $server->getClientInfo($fd);

 $server->send($fd, "Server: " . $data);
});
//監(jiān)聽連接關(guān)閉事件
$server->on('Close', function ($server, $fd) {
 echo "Client: Close.\n";
});
//啟動(dòng)服務(wù)器
$server->start();
?>

以PHP SWOOLE實(shí)現(xiàn)雙向認(rèn)證為例:

php
$server = new Swoole\Server('0.0.0.0', 8082,SWOOLE_PROCESS, SWOOLE_SOCK_TCP | SWOOLE_SSL);
// $server = new Swoole\Server('0.0.0.0', 8082);
$server->set(array(
 'ssl_cert_file'=>'/data/swoole/cert/ssl.pem',//服務(wù)端證書
 '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',//簽發(fā)客戶端證書的根證書
));
//監(jiān)聽連接進(jìn)入事件
$server->on('Connect', function ($server, $fd) {
 echo "Client: Connect.\n";
});
//監(jiān)聽數(shù)據(jù)接收事件
$server->on('Receive', function ($server, $fd, $from_id, $data) {
$fd_info = $server->getClientInfo($fd);

 $server->send($fd, "Server: " . $data);
});
//監(jiān)聽連接關(guān)閉事件
$server->on('Close', function ($server, $fd) {
 echo "Client: Close.\n";
});
//啟動(dòng)服務(wù)器
$server->start();
?>

建立SSL類型的TCP CLIENT。
以PHP SWOOLE實(shí)現(xiàn)單向認(rèn)證為例:

php
$client = new Swoole\Client(SWOOLE_SOCK_TCP| SWOOLE_SSL);
if (!$client->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();

以PHP SWOOLE實(shí)現(xiàn)雙向認(rèn)證為例:

php
$client = new Swoole\Client(SWOOLE_SOCK_TCP| SWOOLE_SSL);
$client->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();

也可以使用openssl庫來作為client。

    openssl s_client -connect IP:444
0 條回復(fù) A文章作者 M管理員
    暫無討論,說說你的看法吧
QQ客服
  • QQ176363189 點(diǎn)擊這里給我發(fā)消息
旺旺客服
  • 速度網(wǎng)絡(luò)服務(wù)商 點(diǎn)這里給我發(fā)消息
電子郵箱
  • sudu@yunjiasu.cc
微信客服
  • suduwangluo