给空白主机生成自签名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
命令生成时候要填信息 如图:
最后根据这 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 -
最后修改:2021年7月11日
共有 0 条评论