Có, chúng tôi đã thêm TLS 1.1 & 1.2 hỗ trợ recently. Đó là dễ dàng như việc thiết lập ssl_version
trên SSLContext
của bạn:
ctx = OpenSSL::SSL::SSLContext.new
ctx.ssl_version = :TLSv1_2
Bạn vẫn có thể tiếp tục sử dụng chung chung hơn :SSLv23
cho khả năng tương tác tối đa. Nó sẽ có hiệu lực là giao thức mới nhất được hỗ trợ bởi peer sẽ được sử dụng cho kết nối. Nếu đồng đẳng của bạn hiểu TLS 1.2, thì nó sẽ được sử dụng. Nhưng trái ngược với mẫu trên, nếu ngang hàng không nói 1.2, thì việc triển khai sẽ tự động quay trở lại phiên bản tốt nhất/mới nhất mà peer thực hiện hiểu - trong ví dụ trên, kết nối sẽ bị từ chối bởi nếu nó không nhận ra 1.2.
Để biết thêm chi tiết, cũng có một cái nhìn tại OpenSSL's own docs về đề tài này, bạn có thể chuyển những gì đang được nói về TLSv1_method để TLSv1_1_method và TLSv1_2_method (đại diện trong Ruby như :TLSv1
, :TLSv1_1
và :TLSv1_2
tương ứng).
Nếu OpenSSL cơ bản của bạn hỗ trợ TLS 1.2 (> = 1.0.1), bạn nên sử dụng. Tuy nhiên, điều này đòi hỏi một Ruby xây dựng từ thân cây hiện nay. Nhưng nếu chúng tôi không nhận được phản hồi tiêu cực trong thời gian chờ đợi, nó có thể là nó sẽ được trả lại cho bản phát hành 1.9.3 tiếp theo.
Điều kiện tiên quyết liên quan là OpenSSL 1.0.0 trở lên. OpenSSL 0.9.8 không * không * cung cấp các giao thức hoặc bộ mã hóa. – jww