nginx防止扫描https证书信息
有些安全研究员或者安全机构,一直在监听全球ip443端口的ssl证书信息,不设置几个骚操作,一不小心ip就暴露了。
当网站有使用cdn的情况,我们是不希望真实ip被人知晓的,虽然有N多种办法获取到cdn网站背后的真实ip,咱们设置的目的就是增加黑客的攻击成本。
首先创建一个自签https证书,默认443端口会用到。
openssl req \ -newkey rsa:2048 \ -x509 \ -nodes \ -keyout fuck.com.key \ -new \ -out fuck.com.crt \ -subj /CN=fuck.com \ -reqexts SAN \ -extensions SAN \ -config <(cat /etc/pki/tls/openssl.cnf \ <(printf '[SAN]\nsubjectAltName=DNS:fuck.com')) \ -sha256 \ -days 3650 |
生成过程中如果遇到unable to find ‘distinguished_name’ in config
problems making Certificate Request
4482731456:error:0E06D06C:configuration file routines:NCONF_get_string:no value:crypto/conf/conf_lib.c:273:group=req name=distinguished_name。
可查看一下openssl.cnf文件位置,比如ubuntu的openssl.cnf,默认情况在/etc/ssl/openssl.cnf
查看自签证书信息
openssl x509 -in fuck.com.crt -noout -text |
最后修改nginx配置,在nginx.conf中加入如下两项配置。目的是禁止ip直接访问, 防止扫描https证书信息
# 禁止80端口 ip访问 server { listen 80 default_server; server_name _; return 403; } # 禁止443端口 ip访问、防止扫描https证书信息 server { listen 443 default_server; server_name _; ssl on; ssl_certificate /etc/nginx/ssl/fuck.com.crt; ssl_certificate_key /etc/nginx/ssl/fuck.com.key; return 403; } |