我在 上运行我自己的RocketChat
最新版本Docker
。此外,我还Nginx
运行了一个反向代理Certbot
来执行https
。它与 Android 上的 Firefox 网络浏览器和 OSX 上的 Chrome 配合得很好。但是,当我使用它自己的 Android 移动应用程序时。我无法连接到我的服务器。
我发现问题出现同样的错误信息。结论与证书有关。因此我检查了自己的服务器,发现它有ROOT 1 missing
。阅读后文章. 我有以下 2 个问题
Nginx 配置:
upstream chat {
server localhost:3000;
}
server {
listen 80 ;
listen [::]:80 ;
server_name chat.elcolie.com ;
root /var/www/html;
location ~ /.well-known{
allow all;
}
location / {
return 301 https://$server_name$request_uri;
}
}
server {
listen 443 ssl ;
listen [::]:443 ssl;
include snippets/ssl-elcolie.com.conf;
include snippets/ssl-params.conf;
server_name chat.elcolie.com;
location / {
proxy_pass http://chat;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forward-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forward-Proto http;
proxy_set_header X-Nginx-Proxy true;
proxy_redirect off;
}
}
/etc/nginx/snippets/ssl-elcolie.com.conf
ssl_certificate /etc/letsencrypt/live/elcolie.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/elcolie.com/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/elcolie.com/chain.pem;
/etc/nginx/snippets/ssl-params.conf
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH";
ssl_ecdh_curve secp384r1;
ssl_session_cache shared:SSL:10m;
ssl_session_tickets off;
ssl_stapling on;
ssl_stapling_verify on;
resolver 8.8.8.8 8.8.4.4 valid=300s;
resolver_timeout 5s;
# disable HSTS header for now
#add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload";
#add_header X-Frame-Options DENY;
add_header X-Frame-Options SAMEORIGIN;
add_header X-Content-Type-Options nosniff;
ssl_dhparam /etc/ssl/certs/dhparam.pem;
试图:
添加fullchain.pem
letsencryptauthorityx3.pem
然后ssl检查器返回相同的内容。Root 1 missing
我的服务器是chat.elcolie.com
尝试2:
下载 DST Root CA X3 证书p7b格式并通过命令提取bcarroll 回答
明天我会找到 Android 和 iOS 来确认这个设置
问题:
Rocket.Chat
Android 无法登录我的服务器
问题:
如何让 Android 移动应用程序与我的服务器兼容?
我需要购买其他证书来解决这个问题吗?
答案1
您需要在服务器上下载并安装此根证书。您不需要获取其他证书。
情况是,Let's Encrypt 根证书通常不包含在某些操作系统中,但它由其他受信任的 CA 签名。