HTTPS反向代理的设置

Posted by 麻辣小龙猫 on June 19, 2020
分类: 工具

中午吃饭的时候一通操作,把博文的小绿锁又给加上去了,可喜可贺。
全过程大概分为两个步骤:申请SSL证书,以及修改Nginx配置文件。

什么是HTTPS和SSL?

高中信息课好像有讲过HTTP协议。HTTPS就是加密的HTTP。具体怎么回事我也不是太懂,参考这篇文章稍微扫一眼,对外行人来说应该也够用了。(万能借口:外行人!)

Certbot申请SSL证书

Certbot官网里面讲得很清楚了。不赘述。

选择Nginx和服务器的操作系统,按照提示操作即可。

我遇到的坑

我的服务器操作系统是Debian 8,不知是因为系统太老旧还是什么原因,反正在安装过程中会跳出UnicodeEncodeError: ‘ascii’ codec can’t encode character 89-99 之类的错误。
说明Nginx配置文件里有非ascii码表格里面的东西,在终端输入:

grep -r -P "[^\x00-\x7F]" /etc/nginx

看结果发现——原来是我在配置文件里写的中文注释……

英文不好,写注释都要被软件歧视,哭哭。

统统删掉之后就能顺利安装了。

修改Nginx配置文件

/etc/nginx/conf.d里新增ssl.conf

ssl_certificate /etc/letsencrypt/live/www.xjmaoyaoyao.monster/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/www.xjmaoyaoyao.monster/privkey.pem;

把原来代理GitHub图床用的配置文件修改成:

server {
    listen  443  https://www.xjmaoyaoyao.monster:1234;

    server_name  www.xjmaoyaoyao.monster;

    ssl_protocols TLSv1.2;
    ssl_ciphers HIGH:!MEDIUM:!LOW:!aNULL:!NULL:!SHA;
    ssl_prefer_server_ciphers on;
    ssl_session_cache shared:SSL:10m;


    access_log   /home/site/access.log;

    location / {



        proxy_pass  https://raw.githubusercontent.com;

        proxy_set_header  Host          "raw.githubusercontent.com";

        proxy_set_header  Referer       raw.githubusercontent.com;

        proxy_set_header  X-Real-IP     $remote_addr;

        proxy_set_header  User-Agent    $http_user_agent;
    }
}

同理,本来代理WP的配置文件,修改成:

server {
    listen  1234 ssl;

    server_name  www.xjmaoyaoyao.monster;

    ssl_protocols TLSv1.2;
    ssl_ciphers HIGH:!MEDIUM:!LOW:!aNULL:!NULL:!SHA;
    ssl_prefer_server_ciphers on;
    ssl_session_cache shared:SSL:10m;


    access_log   /home/site/access.log;

    location / {
        proxy_pass  https://wordpress.com/;

        proxy_set_header  Host          "wordpress.com";

        proxy_set_header  Referer       wordpress.com;

        proxy_set_header  X-Real-IP     $remote_addr;

        proxy_set_header  User-Agent    $http_user_agent;
        
        proxy_set_header  Accept-Encoding  “”;

        sub_filter https://wordpress.com  https://www.xjmaoyaoyao.monster:1234;
        sub_filter_once off;
    }
}

小绿锁就正常出现了。记得修改博文里图片的url。