Ruby SSL socket 伺服器和客戶端

2021-07-02 03:45:08 字數 1481 閱讀 8335

首先需要準備好伺服器端的證書和key

其次需要準備好客戶端的證書和key

所有伺服器客戶端的證書和key都需要是同乙個ca簽署的。

首先請看伺服器**:

require

'socket'

require

'openssl'

$cacrtf

="ca.crt"

$crtf

="server.crt"

$keyf

="server.key"

server = tcpserver.

new('127.0.0.1', 2400)

ctx = openssl::ssl

::sslcontext.new()

ctx.cert= openssl::x509

::certificate.new(file.open($crtf))

ctx.key = openssl::pkey

::rsa.new(file.open($keyf))

ctx.ca_file =

$cacrtf

ssl_server = openssl::ssl

::sslserver.new(server, ctx)

sa = ssl_server.accept

p sa.gets

sa.puts "server time: #"

sa.close

ssl_server.close

請看客戶端**

require

'socket'

require

'openssl'

$cacrtf="ca.crt"

$crtf="client.cer"

$keyf="client.key"

socket = tcpsocket.new('127.0.0.1', 2400)

context = openssl::ssl::sslcontext.new

context.cert= openssl::x509::certificate.new(file.open($crtf)) # $cacrtf or $crtf

context.key = openssl::pkey::rsa.new(file.open($keyf),'password')

context.ca_file =$cacrtf

ssl_socket = openssl::ssl::sslsocket.new(socket, context)

ssl_socket.sync_close = true

ssl_socket.connect

p ssl_socket.ssl_version

ssl_socket.puts "client time: #"

p ssl_socket.gets

ssl_socket.close

請各位參考。

FTP服務 Web服務

ftp服務 web服務 一 ftp概述和搭建 1 ftp是一種應用層協議 採用c s結構設計,在傳輸層使用的是tcp的21 控制連線 與20 資料連線 2 搭建ftp站點 二 常用 ftp 服務端程式 1 iis windows server 2012 r2角色中的乙個可選角色服務 iis 元件主要...

SpringCloud服務調服務

org.springframework.cloud spring cloud starter feign enablefeignclients configuration public class mybatisplusconfig 資料許可權外掛程式 return datascopeinterce...

服務熔斷 服務降級

當某個微服務不可用或者響應時間太長時,會進行服務的降級,進而熔斷該節點微服務的呼叫,快速返回錯誤的響應資訊。當檢測到該節點微服務呼叫響應正常後,恢復呼叫鏈路。當伺服器壓力劇增的情況下,根據實際業務情況及流量,對一些服務和頁面有策略的不處理或換種簡單的方式處理,從而釋放伺服器資源以保證核心交易正常運作...