SSL简介
SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。TLS与SSL在传输层对网络连接进行加密。
Secure Socket Layer,为Netscape所研发,用以保障在Internet上数据传输之安全,利用数据加密(Encryption)技术,可确保数据在网络上之传输过程中不会被截取及窃听。一般通用之规格为40 bit之安全标准,美国则已推出128 bit之更高安全标准,但限制出境。只要3.0版本以上之I.E.或Netscape浏览器即可支持SSL。
当前版本为3.0。它已被广泛地用于Web浏览器与服务器之间的身份认证和加密数据传输。
SSL协议位于TCP/IP协议与各种应用层协议之间,为数据通讯提供安全支持。SSL协议可分为两层: SSL记录协议(SSL Record Protocol):它建立在可靠的传输协议(如TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能的支持。 SSL握手协议(SSL Handshake Protocol):它建立在SSL记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等。
免费证书推荐-Let’s Encrypt
1、Let’s Encrypt是国外一个公共的免费SSL项目,由 Linux 基金会托管,它的来头不小,由Mozilla、思科、Akamai、IdenTrust和EFF等组织发起,目的就是向网站自动签发和管理免费证书,以便加速互联网由HTTP过渡到HTTPS。
2、Let’s Encrypt安装部署简单、方便,目前Cpanel、Oneinstack等面板都已经集成了Let’s Encrypt一键申请安装,网上也有不少的利用Let’s Encrypt开源的特性制作的在线免费SSL证书申请网站,总之Let’s Encrypt得到大家的认可。
3、最后选择Let’s Encrypt,一方面是Let’s Encrypt SSL已经被Firefox、Chrome、IE等浏览器所支持,IE 6 用户估计也不怎么看我的博客,所以可以忽略。另一方面,Let’s Encrypt SSL证书下载和安装已经是傻瓜式的简单了。
Nginx启用SSL
修改Nginx的nginx.conf文件
#http方式访问定向到https
server {
listen 80;
server_name yourdomainname.com;#yourdomainname.com你的域名
rewrite ^/(.*)$ https://yourdomainname.com/$1 permanent;#yourdomainname.com你的域名
}
#https
server {
listen 443 ssl;
server_name yourdomainname.com;#yourdomainname.com你的域名
ssl_certificate certificate.pem;#certificate.pem你的证书路径
ssl_certificate_key certificatekey.key;#certificate.pem你的证书路径
ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location / {
#参数不变
}
}
本文地址: lnmp搭建部署启用https,ssl