自签名全平台通用的IP证书
前言:由于阿里云的限制,所有带域名的,不管有没有SSL,都无法逃过被拦截,所以可以用IP+域名的方式访问。之前有介绍过IP+PORT转发到DENO和CLOUDFLARE。但是我拿来下文件看视频肯定是会被DENO发现的,所以还是直接访问阿里云为妙,这样延迟也能低点。再者,之前http都是明文传输,我可不想被管理员看见,毕竟我已经见识过他们的技术力了。
效果:
以下教程这段,我参考了:
1. openssl为IP签发证书(支持多IP/内外网) https://www.jianshu.com/p/cad3377692c9
2. Install self-signed certificates no longer working in Android Q https://stackoverflow.com/questions/58500892/install-self-signed-certificates-no-longer-working-in-android-q#:~:text=A%20private%20key%20is%20NOT,certificate%20AFTER%20it%20is%20generated.
3. One self-signed cert to rule them all? Chrome, Android, and iOS https://stackoverflow.com/questions/57565665/one-self-signed-cert-to-rule-them-all-chrome-android-and-ios
主要是靠第三篇。
关于IP签名适用于Windows和Mac的可以直接参考第一篇。
关于域名签名适用于全平台的,参考第三篇。
如果要让第三篇适用于IP证书,把所有的 DNS:test.com 换成 IP:你的IP (这一步我卡了很久)
在最后加上[ alt_names ] IP.1=你的IP。
Contents of openssl.cnf (⚠️可以翻动):
[ req ] default_bits = 2048 default_keyfile = ca.key default_md = sha256 default_days = 825 encrypt_key = no distinguished_name = subject req_extensions = req_ext x509_extensions = x509_ext string_mask = utf8only prompt = no [ subject ] countryName = US stateOrProvinceName = Oklahoma localityName = Stillwater organizationName = My Company OU = Engineering commonName = 你的IP emailAddress = me@home.com # Section x509_ext is used when generating a self-signed certificate. I.e., openssl req -x509 ... [ x509_ext ] subjectKeyIdentifier = hash authorityKeyIdentifier = keyid:always,issuer basicConstraints = critical, CA:TRUE keyUsage = critical, digitalSignature, keyEncipherment, cRLSign, keyCertSign subjectAltName = IP:你的IP extendedKeyUsage = serverAuth extendedKeyUsage = TLS Web Server Authentication [ req_ext ] subjectKeyIdentifier = hash basicConstraints = CA:FALSE keyUsage = digitalSignature, keyEncipherment subjectAltName = IP:你的IP nsComment = "OpenSSL Generated Certificate" [alt_names} IP.1=你的IP
然后用命令生成就行:
openssl req -config openssl.cnf -new -x509 -days 825 -out ca.crt
openssl x509 -in ca.crt -text -noout
- 其它的问题不大。最后导入还是挺方便的。导入.CRT就行, IOS稍微麻烦点。
在 Debian / Ubuntu / Alpine 系统中信任证书:
cp *.crt /usr/local/share/ca-certificates/
update-ca-certificates
- 关于nginx配置
ssl_certificate /home/ssl/xxx/ca.crt;
ssl_certificate_key /home/ssl/xxx/ca.key;
- 关于安全
但是nps从家里到阿里云那段应该没有加密。据说现在但凡是个高级点的路由都有识别功能了,但是无所谓了。我只是不想让学校管理员看到我在nas上看的那些PT。你知道这国外的技术有多高超,所有电脑账号都是拿学号登录的,桌面的文件都是同步的,Windows的登录感觉是在线验证,我国内从来没见识过。用户没有管理员,无法U盘启动,BIOS有密码,真是全面加固啊。我上网的时候,经常来给我提示,好多网站都禁了。就怕群晖有什么漏洞,给我来个勒索病毒。那个nps的漏洞就是无法进shell,造不成什么影响。
这个SSL也有好多公司靠着赚钱的,互联网也是这样,压根就依附于域名,dns,服务器,运营商的链路。完全不在掌控之内。
关于nps,目前所知nps-auth-bypass的漏洞,我把阿里云上的修复了,但是由于种种原因换掉nps还是算了。
关于这个漏洞:
Comments
Post a Comment