我的博客网站是使用 HTTP 协议的,使用 Google Chrome 浏览器访问就会在地址栏提示不安全


这让人很不舒服,于是乎,折腾起 HTTPS ...

 

为什么一般不愿意迁?

  • 购买证书,要钱,老早证书都是按年收费的。现在使用云服务器,一般都能免费申请证书了。
  • 配置证书又是一堆操作,麻烦;涉及到的内容也多
  • 对服务器进行认证、对通信进行加解密,肯定是有多余开销的,速度肯定是会慢的

 

迁移到 HTTPS 还是很有必要的

  • 浏览器在访问 HTTP 协议的网站时,就会在地址栏提示 "不安全",给用户的感觉很不友好;Google Chrome 浏览器在 HTTPS 协议站点的地址栏左边就加了一把表示安全的"锁"。
  • 很多开放平台早就要求绑定 url 必须是 HTTPS 协议,如微信、苹果、安卓开放平台。我个人想做小程序,url 就必须是 HTTPS 的,不然根本玩不了。
  • Google、百度搜索引擎降低了 HTTP 协议的站点的排名,加大了 HTTPS 站点的权重。
  • HTTPS 比 HTTP 安全,加入了 SSL 层,用证书验证服务器的身份,并为浏览器和服务器之间的通信加密
  • HTTPS 能够有效防止运营商流量劫持、阻止自己网站莫名的弹窗广告


无奈,"要不要迁移到 HTTPS" 的问题,变成了 "怎么迁移到 HTTPS" 。

 

申请证书与配置我的阿里云服务器加了一层 nginx,迁移到 HTTPS 还是挺简单的。参照的这篇文档,一次性搞定

https://help.aliyun.com/document_detail/98728.html?spm=5176.2020520163.0.0.2c6bizEHizEHt6

主要步骤:

  • 申请免费的 ssl 证书,只能是一年,到期要不要收费未知。
  • 下载 .pem 证书文件和 .key 密钥文件,修改命名
  • nginx/conf 建 cert 目录,放证书文件和密钥文件
  • 修改 nginx.conf 文件

# 开启443端口# 以下属性中以ssl开头的属性代表与证书配置有关,其他属性请根据自己的需要进行配置。server { listen 443 ssl;   #SSL协议访问端口号为443。此处如未添加ssl,可能会造成Nginx无法启动。 server_name localhost;  #将localhost修改为您证书绑定的域名 root html; index index.html index.htm; ssl_certificate cert/domain name.pem;   #将domain name.pem替换成您证书的文件名。 ssl_certificate_key cert/domain name.key;   #将domain name.key替换成您证书的密钥文件名。 ssl_session_timeout 5m; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;  #使用此加密套件。 ssl_protocols TLSv1 TLSv1.1 TLSv1.2;   #使用该协议进行配置。 ssl_prefer_server_ciphers on;    location / {  root html;   #站点目录。  index index.html index.htm;    }}


  • 保存 nginx.conf 配置文件,重启或重新加载 nginx 服务
  • 修改 nginx 配置,让 HTTP 的 url,重定向到 HTTPS

server { listen 80; server_name localhost;   #将localhost修改为您证书绑定的域名 rewrite ^(.*)$ https://$host$1 permanent;   #将所有http请求通过rewrite重定向到https location / {  index index.html index.htm; }}



PS:

  • Let's Encrypt 也可以免费申请证书,有效期较短,90 天,要定时更新
  • https://www.ssllabs.com/ 可以测试网站的安全程度


更多相关文章

  1. 阿里的OceanBase数据库世界第一,底层原来是用了Paxos协议
  2. 其实很重要的一个分布式理论基础3pc协议
  3. 分布式基础理论知识点-2pc协议(面试常问知识点)
  4. SSL 证书选择指南
  5. java网络编程(3)UDP协议编程(单播多播广播)
  6. 在51CTO学院学习PMP,终于get证书
  7. redis之通信协议
  8. Windows 环境下php安装openssl证书

随机推荐

  1. Android(安卓)之 使用File类在SD卡中读取
  2. Android系统架构-----Android的系统体系
  3. Android studio学习之TextView、EditText
  4. Android软件工程师之不归路
  5. RN系列:Android原生与RN如何交互通信
  6. Android 4高级编程(第3版) 试读
  7. Android开发UI之android:gravity / andro
  8. Android 中文API合集(3)(83篇)(chm格式)
  9. 关于Android的selector小用法
  10. Android菜单详解——理解android中的Menu