前言

SSL证书是什么

SSL证书(Secure Sockets Layer Certificate),也称为数字证书,是一种用于保护网站和用户之间通信安全的加密协议。它是由一个可信任的第三方机构(称为证书颁发机构或CA)颁发的数字证书,这个证书中包含了一些关键信息,如网站所有者、证书颁发机构和证书有效期等。SSL证书通过加密网站和用户之间的数据传输来确保信息不被黑客窃取或篡改。

当用户访问一个使用SSL证书的网站时,他们的浏览器会与该网站的服务器进行安全连接。在此过程中,服务器将向浏览器发送SSL证书。如果证书是有效的且可信任的,则浏览器将建立安全连接,并且数据传输将被加密。如果证书无效或不存在,则浏览器会显示警告信息,提示用户该网站可能不安全,并阻止用户继续前往。

HTTPS协议跟HTTP协议的区别

HTTPS协议和HTTP协议在多个方面存在显著差异,主要包括以下几个方面:

安全性:

  • HTTPS:通过SSL或TLS为数据传输加密,保障传输过程中的数据安全性和完整性。它使用加密技术保护网站与用户之间的通信,确保数据传输的安全性,防止数据在传输过程中被截获和篡改。
  • HTTP:无加密的明文传输,数据在传输过程中容易被第三方截取和查看,安全性较低。

证书验证与身份认证

  • HTTPS:使用SSL证书,通过证书机构对网站身份进行验证,确保通信双方的身份和数据的完整性。这有助于防止中间人攻击和其他形式的欺诈。
  • HTTP:没有这种验证机制,容易被中间人攻击,造成数据泄露或篡改。

默认端口

  • HTTPS:默认使用443端口进行通信,这是SSL/TLS协议所使用的默认端口。
  • HTTP:默认使用80端口进行通信。

对SEO的影响

  • HTTPS:搜索引擎对使用HTTPS协议的网站给予更高的排名权重,因为越来越多的网站开始采用HTTPS协议,这意味着使用HTTPS协议的网站更值得信赖。
  • HTTP:未使用HTTPS协议的网站在搜索引擎排名中可能会受到不利影响。

性能消耗

  • HTTPS:相较于HTTP协议,HTTPS在性能上有一些消耗。由于加密和解密过程中需要进行额外的计算,尤其在进行SSL握手时,服务器和客户端都需要更多的CPU和内存资源。尽管现代硬件的发展和优化的加密算法已经降低了这部分开销,但相较于HTTP,HTTPS仍然会带来更高的性能消耗。
  • HTTP:没有加密和解密过程,性能消耗较低。

用户体验

  • HTTPS:使用HTTPS协议的网站在浏览器地址栏会显示一个小锁头图标或绿色的锁形象标识,表示网站是安全的,这有助于提升用户体验和信任度。

  • HTTP:没有这种显示,用户无法直观地知道网站的安全性。

申请SSL证书

首先 需要拥有一个域名,一年也挺便宜(10来块吧。。。后面每年续费的话也差不多50多,看你买的域名后缀类型。(本文使用的是阿里云注册的域名,后缀为.top。

接着申请免费的SSL域名证书,直接搜索就能搜得到,有三个月的试用期。

填写完相关资料后就可以提交申请啦,然后就再多关注关注有没有审核通过,一般来说10来分钟就OK了,注意QQ邮箱的消息,如果长时间没有成功,检查一下是不是有啥地方没有检查。

Nginx服务器证书安装

证书申请成功后,将其下载到本地上

阿里云的话会让你选择下载的类型,选择Nginx的就行

解压后会看到两个文件,一个是.key证书文件和.pem私钥文件(腾讯云下载的话是.key和.crt 也是一样的)

接着 通过nginx -t查看我们的nginx安装目录,我的就在/etc/nginx/

cd进入安装目录,在该目录下查看是否存在conf目录。没有的话在此目录下通过mkdir -p conf创建出一个conf目录

然后就将下载下来的文件上传到这个目录下就ok啦,在此之前记得修改目录的权限chmod 777 conf

上传之后ls查看一下上传成功没有

接下来修改nginx文件 vim /etc/nginx/nginx.conf

server里的内容应如下

Nginx 版本为 nginx/1.15.0 以上请使用listen 443 ssl 代替 listen 443ssl on

server {
#SSL 访问端口号为 443
listen 443 ssl;
#填写绑定证书的域名
server_name www.域名.com;
#证书文件名称
ssl_certificate .下载的.pem;
#私钥文件名称
ssl_certificate_key .下载的.key;
ssl_session_timeout 5m;
#请按照以下协议配置
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
#请按照以下套件配置,配置加密套件,写法遵循 openssl 标准。
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
}

cd /在服务器的根目录下通过./sbin/nginx -t查看配置文件是否存在问题

这样就ok啦

至此就已经配置成功啦

可以直接使用https://+域名访问网站了

问题

现在使用HTTPS协议可以访问,HTTP协议同样也行

如何修改呢?

知道的佬可以留言,在此双膝奉上。