给网站加上https

什么是http

HTTP(HyperText Transport Protocol)是超文本传输协议的缩写,它用于传送WWW方式的数据,关于HTTP协议的详细内容请参考RFC2616。HTTP协议采用了请求/响应模型。客户端向服务器发送一个请求,请求头包含请求的方法、URL、协议版本、以及包含请求修饰符、客户信息和内容的类似于MIME的消息结构。服务器以一个状态行作为响应,响应的内容包括消息协议的版本,成功或者错误编码加上包含服务器信息、实体元信息以及可能的实体内容。
具体可看 [图解http](https://ttop5.gitbooks.io/illustration-http/content/index.html)

什么是https

超文本传输安全协议(英语:Hypertext Transfer Protocol Secure,缩写:HTTPS,常称为HTTP over TLS,HTTP over SSL或HTTP Secure)是一种通过计算机网络进行安全通信的传输协议。HTTPS经由HTTP进行通信,但利用SSL/TLS来加密数据包。HTTPS开发的主要目的,是提供对网站服务器的身份认证,保护交换数据的隐私与完整性。这个协议由网景公司(Netscape)在1994年首次提出,随后扩展到互联网上。

http与https的区别

  1、https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。

  2、http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。

  3、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。

  4、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。

申请SSL证书

此处我所知道的两个免费申请SSL证书的方法
阿里云盾点击打开
腾讯云点击打开
单域名免费版 — 如 likecc.top blog.likecc.top 为两个域名 同一主域最多只能申请20张亚洲诚信品牌免费型DV版SSL证书

nginx配置https

配置文件如下

server {
    listen       443; #监听 443 端口
    server_name  likecc.top; 
    ssl          on; #开启ssl认证
    ssl_certificate /etc/nginx/ssl/likecc.top/1_likecc.top_bundle.crt; #ssl证书所在位置
    ssl_certificate_key /etc/nginx/ssl/likecc.top/2_likecc.top.key;    #ssl证书密钥所在位置
    ssl_session_timeout 5m;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #按照这个协议配置
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
    ssl_prefer_server_ciphers on;
    charset utf-8;
    location / { #访问 https://likecc.top/ 时匹配
        root  /root/workspace/web;  #文件所在目录
        index  index.html index.htm;
    }
    error_page  404 403 500 502 503 504         /404.html;
    location = /404.html {
        root   /root/workspace/web;
    }
}

http80端口重定向https443端口

server {
    listen       80;#监听 80 端口
    server_name  likecc.top;
    return 301   https://likecc.top; #重定向
}

自定义https域名 访问 github Pages

使用nginx反向代理实现

server {
    listen       443;
    server_name  blog.likecc.top;
    ssl          on;
    ssl_certificate /etc/nginx/ssl/blog.likecc.top/1_blog.likecc.top_bundle.crt;
    ssl_certificate_key /etc/nginx/ssl/blog.likecc.top/2_blog.likecc.top.key;
    ssl_session_timeout 5m;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #按照这个协议配置
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
    ssl_prefer_server_ciphers on;
    charset utf-8;
    location / {
    proxy_pass https://bqdcc.github.io; #重定向的url
    #Proxy Settings
    proxy_redirect  https://bqdcc.github.io/ /;#将302中的响应头替换成自己的
    }
}
0%