自签名全平台通用的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还是算了。

关于这个漏洞:

https://jireh.xyz/articles/2022/08/10/1660122191957.html

https://github.com/carr0t2/nps-auth-bypass

Comments

Popular posts from this blog

openwrt设置定时任务-远程唤醒计算机

海外回国代理分流

从Blogger转移