SSL 原理及 https 配置

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介:

SSL 原理

SSL 简介

SSL (Secure Socket Layer), 中文名称 安全套接字.
SSL 的出现, 主要是为了解决Web浏览器和Web服务器之间的安全传输问题.

主要概念

SSL 中主要有如下几个概念:

  • 传输加密: 所有消息加密后传输
  • 身份验证: 客户端验证可选, 服务端验证强制
  • 传输完整性: 传输的消息的完整性检查 (使用 MAC)

建立安全连接的过程

过程图:
SSL 握手

步骤说明:

  1. client 发送 clientHello 信息给 server
  2. server 识别之后发送 serverHello 给 client, 这个过程建立安全能力, 包括协议版本, sessionID, 加密算法, 压缩方法, 随机数.
  3. 此时 SSL 握手的第一阶段完成
  4. server 会向 client 发送server的证书 (证书中有 server 端的公钥)
  5. server 向 client 发送密钥交换信息. 同时还会请求 client 端的证书.
  6. server 发送 Hellodone 信息, 表示 server 端的请求结束.
  7. 此时 SSL 握手的第二阶段完成
  8. client 发送client证书 (client没有证书的话, 可以回复 server 无证书)
  9. client 生成一个对称密码, 并发送给 server (这里的信息用收到的 server 端公钥来加密)
  10. 如果 client 发送了client证书, 那么还会发送证书验证信息
  11. 此时 SSL 握手的第三阶段完成
  12. client 通知 server 以后通信用之前发送的对称密码加密, 并结束握手
  13. server 通知 client 以后通信用之前发送的对称密码加密, 并结束握手

https 配置 (以 nginx 为例)

centos6.6 x86_64 上实验

  1. 生成证书

    cd /etc/nginx
    openssl genrsa -des3 -out server.key 1024         # 设置证书密码
    openssl req -new -key server.key -out server.csr  # 根据提示输入各种信息
    cp server.key server.key.org
    openssl rsa -in server.key.org -out server.key
    openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
  2. 设置 https 的证书

    cat /etc/nginx/ssl.conf
    # HTTPS server
    #
    server {
        listen       443 ssl;
        server_name  localhost;
    
        ssl_certificate      /etc/nginx/server.crt;
        ssl_certificate_key  /etc/nginx/server.key;
    
        ssl_session_cache shared:SSL:1m;
        ssl_session_timeout  5m;
    
        ssl_ciphers  HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers   on;
    
        location / {
            root   /usr/share/nginx/html;
            index  index.html index.htm;
        }
    }
  3. 重启 nginx

    nginx -s reload
  4. 从浏览器中可以查看是否配置成功 (https://hostip/)




本文转自wang_yb博客园博客,原文链接:http://www.cnblogs.com/wang_yb/p/4330689.html,如需转载请自行联系原作者

目录
相关文章
|
1月前
|
安全 算法 网络安全
HTTPS原理
HTTPS 通过加密、数字证书、握手过程等多种手段,确保了网络通信的安全和可靠。它为用户提供了更高级别的隐私保护和数据安全,是现代互联网中重要的安全保障机制。随着网络安全威胁的不断增加,HTTPS 的应用也越来越广泛,成为保障网络安全的重要基石。
122 70
|
3天前
|
网络协议 安全 网络安全
探索网络模型与协议:从OSI到HTTPs的原理解析
OSI七层网络模型和TCP/IP四层模型是理解和设计计算机网络的框架。OSI模型包括物理层、数据链路层、网络层、传输层、会话层、表示层和应用层,而TCP/IP模型则简化为链路层、网络层、传输层和 HTTPS协议基于HTTP并通过TLS/SSL加密数据,确保安全传输。其连接过程涉及TCP三次握手、SSL证书验证、对称密钥交换等步骤,以保障通信的安全性和完整性。数字信封技术使用非对称加密和数字证书确保数据的机密性和身份认证。 浏览器通过Https访问网站的过程包括输入网址、DNS解析、建立TCP连接、发送HTTPS请求、接收响应、验证证书和解析网页内容等步骤,确保用户与服务器之间的安全通信。
26 1
|
1月前
|
安全 网络协议 应用服务中间件
内网ip申请SSL证书实现https访问
内网IP地址虽不能直接申请公网SSL证书,但可通过IP SSL证书保障数据安全。流程包括:确定固定内网IP,选择支持内网IP的CA,注册申请证书,生成CSR,验证IP所有权,下载部署证书至Web服务器,测试HTTPS访问,确保配置正确及证书有效。此方法适用于内网环境,提升数据传输安全性。
内网ip申请SSL证书实现https访问
|
1天前
|
安全 算法 网络协议
【网络原理】——图解HTTPS如何加密(通俗简单易懂)
HTTPS加密过程,明文,密文,密钥,对称加密,非对称加密,公钥和私钥,证书加密
|
1月前
|
安全 算法 网络安全
一张图就把HTTPS工作原理讲明白了!
【10月更文挑战第31天】
65 1
一张图就把HTTPS工作原理讲明白了!
|
1月前
|
安全 应用服务中间件 网络安全
如何测试Nginx反向代理实现SSL加密访问的配置是否正确?
如何测试Nginx反向代理实现SSL加密访问的配置是否正确?
59 3
|
1月前
|
安全 应用服务中间件 网络安全
配置Nginx反向代理实现SSL加密访问的步骤是什么?
我们可以成功地配置 Nginx 反向代理实现 SSL 加密访问,为用户提供更安全、可靠的网络服务。同时,在实际应用中,还需要根据具体情况进行进一步的优化和调整,以满足不同的需求。SSL 加密是网络安全的重要保障,合理配置和维护是确保系统安全稳定运行的关键。
118 3
|
1月前
|
安全 应用服务中间件 网络安全
49.3k star,本地 SSL 证书生成神器,轻松解决 HTTPS 配置痛点
mkcert是一款由Filippo Valsorda开发的免费开源工具,专为生成受信任的本地SSL/TLS证书而设计。它通过简单的命令自动生成并安装本地信任的证书,使本地环境中的HTTPS配置变得轻松无比。mkcert支持多个操作系统,已获得49.2K的GitHub Star,成为开发者首选的本地SSL工具。
125 10
|
27天前
|
安全 数据建模 应用服务中间件
如何给IP地址添加SSL证书(https)
为IP地址配置SSL证书实现HTTPS访问,需拥有固定公网IP,选择支持IP证书的CA,完成账户注册、证书申请、所有权验证及证书安装。验证过程涉及在服务器上放置特定文件,确保可访问。安装后需测试连接,注意兼容性和安全性,定期维护证书。
|
1月前
|
安全 算法 网络协议
网易面试:说说 HTTPS 原理?HTTPS 如何保证 数据安全?
45岁老架构师尼恩在其读者交流群中分享了关于HTTP与HTTPS的深入解析,特别针对近期面试中常问的HTTPS相关问题进行了详细解答。文章首先回顾了HTTP的工作原理,指出了HTTP明文传输带来的三大风险:窃听、篡改和冒充。随后介绍了HTTPS如何通过结合非对称加密和对称加密来解决这些问题,确保数据传输的安全性。尼恩还详细解释了HTTPS的握手过程,包括如何通过CA数字证书验证服务器身份,防止中间人攻击。最后,尼恩强调了掌握这些核心技术的重要性,并推荐了自己的技术资料,帮助读者更好地准备面试,提高技术水平。