【发布时间】:2018-06-23 03:13:18
【问题描述】:
我无法让 android 信任我的自签名证书/ca。我在this video 中尝试了以下操作:
- 使用如下所示的脚本为 m.m 生成 CA 和证书。
- 使用新的证书文件重新加载 nginx(可能没有必要)
- 将 CA 复制到我的本地设备
- 安装 CA
- 确认它已安装并在用户证书下“受信任”
- 试着去mm
- 证书不受信任
我已经阅读了一些指南,说我应该能够生成 CA,在设备上安装/信任 CA,然后 CA 签名的任何内容都应该被信任。我可以让它在我的 Mac OS 机器上运行,但不能在 Android 或 iOS 上运行(我没有尝试过 Windows 或 Linux)。
gen.sh:
#!/bin/bash
domain="m"
name="$1"
if [ ! -e "$domain".key ]; then
openssl genrsa -des3 -out "$domain".key 10240
fi;
if [ ! -e "$domain".pem ]; then
openssl req -x509 -new -nodes -key "$domain".key -sha256 -days 1825 -out "$domain".pem -subj "/C=US/ST=Tennessee/L=Chattanooga/O=CA Test/CN=Management/emailAddress=test@example.com"
fi;
mkdir $name
openssl genrsa -out "$name/$name".key 8192
openssl req -new -key "$name/$name".key -out "$name/$name".csr -subj "/C=US/ST=Tennessee/L=Chattanooga/O=CA Test/CN=Management/emailAddress=test@example.com"
echo "authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
subjectAltName = @alt_names
[alt_names]
" >"$name/$name".ext
i=1
for n in "$@"; do
echo "DNS.$i = $n" | tee -a "$name/$name".ext
i=$((i+1))
done
openssl x509 -req -in "$name/$name".csr -CA "$domain".pem -CAkey "$domain".key -CAcreateserial -out "$name/$name".crt -days 1825 -sha256 -extfile "$name/$name".ext
cp $name/$name.{crt,key} /srv/docker/nginx/certs/
【问题讨论】:
标签: android ios ssl self-signed