1 http和https的区别
HTTP(超文本传输协议)和HTTPS(超文本传输安全协议)都是用于在计算机网络上进行数据传输的协议。它们的主要区别在于安全性方面。
HTTP是一种不加密的协议,数据以明文形式传输,容易被黑客截获并窃取数据。而HTTPS则通过使用SSL/TLS协议进行加密,从而保证了数据在传输过程中的安全性,防止数据被窃取、篡改或伪造。
具体来说,HTTPS在HTTP之上添加了SSL/TLS协议,在客户端和服务器之间传输数据时先进行加密再传输,防止数据被窃听和篡改。而HTTP不具备这种加密功能,数据流经网络时以明文形式传输,容易被黑客窃取和篡改。。
2为啥要安装证书
在HTTPS协议中,为了确保SSL/TLS协议的安全性和可靠性,需要使用数字证书来验证服务器的身份。数字证书是由一家受信任的第三方机构(证书颁发机构或CA)颁发的电子文档,包含了服务器的公钥、证书持有者信息和数字签名等信息。
当客户端发起HTTPS请求时,服务器会将自己的数字证书发给客户端。客户端通过验证数字证书,可以确认服务器的真实身份,并且与服务器建立安全连接。因此,安装证书非常重要,它可以保障HTTPS协议的安全性和可靠性。
在一些情况下,比如在企业内部搭建HTTPS网站时,可以自行颁发数字证书。但是,在公网上发布的HTTPS网站,需要从受信任的第三方证书颁发机构处获取数字证书。这样才能使客户端信任服务器,确保数据传输过程中的安全性和可靠性。
3安装证书的步骤
环境是centos7
1、安装acme:
curl https://get.acme.sh | sh1·
2、安装socat:
yum install socat
3、添加软链接:
ln -s /root/.acme.sh/acme.sh /usr/local/bin/acme.sh
4、切换CA机构:(因为原来的机构颁发的证书速度太慢)
acme.sh --set-default-ca --server letsencrypt
5、申请证书:
acme.sh --issue -d staryh.me --standalone -k ec-256
6、安装证书:
acme.sh --installcert -d staryh.me --ecc --key-file /home/ssl/server.key --fullchain-file /home/ssl/server.crt --> //其中staryh.me换成自己的域名 /home/ssl/server.crt 换成自己安装的路径 不换也可以默认在hone下
7、在nginx里面配置证书:
修改nginx的默认配置文件 我的是 /etc/nginx/conf/defalut.conf
listen 443 ssl; listen [::]:443 ssl; //指示服务器监听443端口,并启用SSL功能 ssl_certificate /home/ssl/server.crt; //指定SSL证书的路径 ssl_certificate_key /home/ssl/server.key; //指定SSL证书的密钥文件的路径,用于与证书配对进行加密和解密。 ssl_session_timeout 1d; ssl_session_cache shared:MozSSL:10m; // ssl_session_tickets off; ssl_protocols TLSv1.2 TLSv1.3; //指定支持的SSL/TLS协议版本,这里只允许TLSv1.2和TLSv1.3 ssl_prefer_server_ciphers off;
然后访问自己域名:
这样就出现了证书了 大概有三个月的时间,如果过期了再重新颁发一次证书就可以了。