什么是SSL

SSL是一种国际标准的加密及身份认证通信协议,您用的浏览器就支持此协议。

 

SSL(Secure Sockets Layer)最初是由美国Netscape公司研究出来的,后来成为了Internet网上安全通讯与交易的标准。

 

SSL协议使用通讯双方的客户证书以及CA根证书,允许客户/服务器应用以一种不能被偷听的方式通讯,在通讯双方间建立起了一条安全的、可信任的通讯通道。它具备以下基本特征:信息保密性、信息完整性、相互鉴定。 主要用于提高应用程序之间数据的安全系数。

 

SSL协议的整个概念可以被总结为:一个保证任何安装了安全套接字的客户和服务器间事务安全的协议,它涉及所有TC/IP应用程序。

SSL代理:支持最高128位加密强度的http代理,可以作为访问加密网站的代理。加密网站是指以https://开始的网站。ssl的标准端口为443。

默认状态下,IIS使用端口443作为SSL端口。但是你也可以根据需要使用任意端口。你可以有很多站点,每个站点有一个非SSL端口数字和一个SSL端口数字。例如,你可以有一个称为ExampleSite的站点,可以把90作为非SSL端口,445作为SSL端口。用户输入http://www.ExampleSite.com ;来访问非SSL版本。要访问其SSL版本,就要输入https://www.ExampleSite.com。他们也可以使用IP:端口数,比如 https://www.Example.com:445

https:// 中的"s"非常重要,因为它告诉用户浏览器使用SSL端口。如果你使用了http://www.Example.com:445,那么什么也不会发生,浏览器只是等待,但是什么也不显示出来。如果你给一个非SSL端口使用https ,例如https://www.ExampleSite.com:90,会出现同样的情形。

 

 

可参看C:/work/know share/weblogic配置SSL。

 

SSL(Secure Sockets Layer)是一种用于在网络上提供安全通信的协议,它通过加密技术确保客户端与服务器之间的数据传输安全。SSL 最初由 Netscape 开发,后来被 TLS(Transport Layer Security)协议所取代,TLS 是 SSL 的继任者,但人们通常仍将两者统称为 SSL/TLS。 ### SSL/TLS 的主要功能: 1. **数据加密**:使用对称加密和非对称加密技术,确保数据在传输过程中不被窃取。 2. **身份验证**:通过数字证书和证书颁发机构(CA)验证服务器(有时也验证客户端)的身份,防止中间人攻击。 3. **数据完整性**:使用消息认证码(MAC)或 HMAC 确保数据在传输过程中未被篡改。 ### SSL/TLS 的工作流程简述: 1. 客户端向服务器发起连接请求。 2. 服务器将自己的数字证书(包含公钥)发送给客户端。 3. 客户端验证证书的有效性(是否由可信 CA 签发、是否过期、域名是否匹配等)。 4. 客户端使用服务器的公钥加密一个随机生成的“预主密钥”并发送给服务器。 5. 服务器使用自己的私钥解密该预主密钥。 6. 双方基于预主密钥生成相同的对称加密密钥。 7. 后续通信使用该对称密钥进行加密解密,保证通信安全。 ### 在 C 语言中使用 SSL/TLS 的示例(使用 OpenSSL 库): ```c #include <openssl/ssl.h> #include <openssl/err.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> #include <unistd.h> #include <stdio.h> #include <string.h> #define PORT 4433 #define SERVER_IP "127.0.0.1" int main() { SSL_library_init(); SSL_load_error_strings(); OpenSSL_add_all_algorithms(); const SSL_METHOD *method = TLS_client_method(); SSL_CTX *ctx = SSL_CTX_new(method); if (!ctx) { perror("Unable to create SSL context"); ERR_print_errors_fp(stderr); return 1; } int sock = socket(AF_INET, SOCK_STREAM, 0); struct sockaddr_in server_addr; memset(&server_addr, 0, sizeof(server_addr)); server_addr.sin_family = AF_INET; server_addr.sin_port = htons(PORT); inet_aton(SERVER_IP, &server_addr.sin_addr); if (connect(sock, (struct sockaddr *)&server_addr, sizeof(server_addr)) == -1) { perror("Connect failed"); return 1; } SSL *ssl = SSL_new(ctx); SSL_set_fd(ssl, sock); if (SSL_connect(ssl) <= 0) { ERR_print_errors_fp(stderr); } else { const char *msg = "Hello, Server!"; SSL_write(ssl, msg, strlen(msg)); char buffer[1024]; int bytes = SSL_read(ssl, buffer, sizeof(buffer)); if (bytes > 0) { buffer[bytes] = '\0'; printf("Received: %s\n", buffer); } } SSL_shutdown(ssl); SSL_free(ssl); close(sock); SSL_CTX_free(ctx); return 0; } ``` ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值