Nginx 给空白主机域名网站生成自签名SSL证书并关闭80和443端口访问 防止扫描

佚名 2020-12-15 1,781 12/15

Nginx 给空白主机域名网站生成自签名SSL证书并关闭80和443端口访问 防止扫描

给空白主机生成自签名SSL证书

首先登陆 SSH,进入放置 SSL 目录

cd /usr/local/nginx/conf/ssl

执行如下命令生成一个 key

openssl genrsa -des3 -out none.key 1024

这里生成时候会要求必须输入 key 文件密码。因为以后要给 nginx 使用,每次 reload nginx 配置时候都要你验证这个 PAM 密码的。所有自签证书都是 1024 位,由于部署自签 SSL 证书而无法获得专业 SSL 证书提供商的专业指导,根本就不知道 1024 位已经不安全了。

这里为了避免麻烦可以删除生成时候必须输入密码:

mv none.key xxx.key
openssl rsa -in xxx.key -out none.key
rm xxx.key

然后根据这个 key 文件生成证书请求文件:

openssl req -new -key none.key -out none.csr

命令生成时候要填信息 如图:

Nginx 给空白主机域名网站生成自签名SSL证书并关闭80和443端口访问 防止扫描

最后根据这 2 个文件(none.key none.csr)生成 crt 证书文件:

sudo openssl x509 -req -days 365 -in none.csr -signkey none.key -out none.crt

这里 365 天是证书有效期,有效期大家随意。最后使用到的文件是 key 和 crt 文件。

好了,把生成的自签名 SSL 证书配置在空主机头就 OK 了!

关闭80和443端口访问 防止扫描

替换 nginx.conf 的 server 段为:

server
    {
        listen 80 default_server reuseport;
        #listen [::]:80 default_server ipv6only=on;
        server_name _;
        return 444;	
    }
	
server
    {
        listen 443 default_server;
        server_name _;
        # ssl on;
        # 版本低于 1.14 打开 ssl on;
        ssl_certificate /usr/local/nginx/conf/ssl/none.crt;
        ssl_certificate_key /usr/local/nginx/conf/ssl/none.key;
        return 444;
	}

禁止 443 端口的话需要自己颁发个自定义证书,或者申请个二级域名不解析 IP 的免费的证书,二级域名随便定义,目的是不让访问 443 端口就好了;

default_server 意思是默认主机头;

这里 return 444 的意思就是当访问 80 或者 443 端口时直接丢弃;

 

- THE END -

佚名

7月11日17:23

最后修改:2021年7月11日
0

共有 0 条评论