侧边栏壁纸
博主头像
gale-blog博主等级

少年一贯快马扬帆,道阻且长不转弯,要盛大,要绚烂,要哗然,要用理想的泰坦尼克号去撞现实冰川,要当烧赤壁的风,而非借箭草船,要为了一片海,就肯翻万山

  • 累计撰写 39 篇文章
  • 累计创建 5 个标签
  • 累计收到 5 条评论

目 录CONTENT

文章目录

配置Https

二月在这里
2024-03-18 / 0 评论 / 1 点赞 / 31 阅读 / 5052 字

为什么要使用https?

因为 http 是明文传输的,通过 http 协议传输的内容很容易被偷看和篡改,为了安全就为 http 协议再加上了一层 SSL/TLS 安全协议,所以就有了 https

https 可以理解为 HTTP over SSL/TLS

SSL/TLS

HTTP over SSL/TLS 字面意思就是带 安全套接层http 协议,内心纯洁的同学也可以理解为 带安全套的 http,因为带了安全套,所以当然会比较安全(/(ㄒoㄒ)/~~)。其中 SSLSecure Sockets Layer 的缩写,是 “安全套接层” 的意思。TLSTransport Layer Security 的缩写,是 传输层安全协议 的意思。SSLTLS 是同一个东西的不同阶段,也就可以理解为同一个东西。都是一种安全协议

怎么将HTTP升级为HTTPS呢?

升级到 https 首先要获得 CA 签发的安全证书文件。

CA

证书颁发机构(CA, Certificate Authority)即颁发数字证书的机构。是负责发放和管理数字证书的权威机构,并作为电子商务交易中受信任的第三方,承担公钥体系中公钥的合法性检验的责任。

获取CA

获取CA证书的最好的方式就是去阿里云申请免费的证书,阿里云每年可以申请20个免费的个人证书。

配置HTTPS

获取到证书之后将证书上传到服务器,分别有pem和key文件

cd /etc/nginx/conf.d

mkdir certs

//将文件放在这个目录下面

vi nginx.conf

配置nginx文件

server {
    listen 80;
    listen 443 ssl;
    add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";
    add_header Set-Cookie "HttpOnly";
    add_header Set-Cookie "Secure";
    sub_filter_once off;
    sub_filter 'domain=.gale-blog.cn' 'domain=.gale-blog.cn';
    add_header X-Frame-Options SAMEORIGIN;
    add_header X-Content-Type-Options: nosniff;
    add_header X-Xss-Protection: 1;
    add_header X-Xss-Protection: mod=block;
    ssl_certificate /etc/nginx/conf.d/certs/gale-bolg.cn.pem;
    ssl_certificate_key /etc/nginx/conf.d/certs/gale-bolg.cn.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;
    server_name gale-bolg.cn;
    index index.do;


    location / {
        proxy_hide_header X-Powered-By;
        proxy_set_header HOST $host; #域名转发
        proxy_set_header X-Real-IP $remote_addr; #IP转发
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header Remote_Addr $remote_addr;

        proxy_cookie_path / $cookie_path;
        proxy_connect_timeout 36000;
        proxy_send_timeout 36000;
        proxy_read_timeout 36000;
        proxy_cookie_domain $host .gale-blog.cn;
        proxy_cookie_path / $cookie_path;

        proxy_pass http://gale-blog_cn;

    }
}

Docker启动Nginx

如果使用的是docker启动的nginx,如果没有对外暴露443的接口,可能出现无法访问的情况,需要重新配置nginx

docker run -p 80:80 -p 443:443  --name nginx -v /home/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /home/nginx/conf/conf.d:/etc/nginx/conf.d -v /home/nginx/log:/var/log/nginx -v /home/nginx/html:/usr/share/nginx/html -d nginx:latest

1

评论区