使用LetsEncrypt SSL证书

时间:2017-09-11 15:45:04

标签: android lets-encrypt applinks

当我碰到这个不寻常的问题时,我刚刚开始在我的应用程序中实现对App Links的支持。

按照Android Studio应用链接工具中的步骤,我很快就能够进行必要的更改。但是,当我开始验证数字资产链接文件与我的网站的关联时,我收到了错误。

enter image description here

最初,我认为访问该链接可能会有一些错误。我尝试使用多个浏览器访问该链接,并且没有错误。

当我四处寻找遇到类似问题的人时,我遇到了this post。我试图关联的网站也使用了LetsEncrypt生成的SSL证书。所以,我尝试了另一个使用LetsEncrypt SSL的网站 - 结果相同。然后我使用了一个使用RapidSSL生成的SSL和宾果游戏的网站 - 它有效!

我不确定App Links团队是否注意到了这一点。但有人可以帮忙解决这个问题吗?

谢谢!

4 个答案:

答案 0 :(得分:1)

我有同样的问题 SSL证书未经过验证。 这是因为您在那里托管的服务器,您必须验证 SSL证书

  

因此文件生成名称 assertlinks.json

此文件必须通过在此json文件中创建文件夹.well-known /来放置在您的服务器域上

<强> https://sub.subdomain.example.com/.well-known/assetlinks.json

在mainfiest我有这个代码

    <intent-filter>
        <action android:name="android.intent.action.VIEW" />

        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.BROWSABLE" />

        <data
            android:host="www.example.com"
            android:path="/aboutus"
            android:scheme="http" />

    </intent-filter>
  

按照以下步骤使其工作我的深层链接正常工作   https://developer.android.com/studio/write/app-link-indexing.html

答案 1 :(得分:1)

已经有些老了,但希望仍然有意义。今天我遇到了同一问题,并发现问题出在.well-known文件夹。根据您设置“加密我们的SSL”证书的方式,很可能您的服务器上现在有了一个别名,该别名指向服务器上的/var/www/html/.well-known文件夹。这也是您必须放置assetlinks.json文件的地方。复制文件在那里解决了我的问题。

但是请注意,如果您的服务器上有多个域,并且需要将应用程序链接到其他域,则很可能会带来很多问题。我不知道您是否可以在此设置中使用不同的assetlinks.json文件。

答案 2 :(得分:0)

比如说,如果您在生产环境中使用 nginxgunicorn 运行 Flask 服务器,那么这个 assetlinks.json 文件将不会由您的烧瓶应用程序或 gunicorn 软件。此文件必须由 nginx 提供服务。

为此,您必须在 nginx 配置文件中进行以下更改:

location /.well-known {
    default_type "text/plain";
    alias /home/user/project/app/.well-known;
}

您将在此处进行更改:

server {
server_name www.example.com example.com;

location /static {
    alias /home/user/project/app/static;
}
#################EDITED PORTION START################
location /.well-known {
    default_type "text/plain";
    alias /home/user/project/app/.well-known;
}
#################EDITED PORTION END################
location / {
    proxy_pass http://localhost:8000;
    include /etc/nginx/proxy_params;
    proxy_redirect off;
}

listen 443 ssl; # managed by Certbot
ssl_certificate 
 /etc/letsencrypt/live/example.com/fullchain.pem; # managed by Certbot
 ssl_certificate_key 
 /etc/letsencrypt/live/example.com.bd/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}

答案 3 :(得分:-1)

当我使用Android Studio 2.3时,我也遇到了这个问题。

我们加密证书之一根CA是&#34; DST根CA X3&#34;,因此您可以检查您的加密根CA是否为。

当我使用wireshark捕获ssl数据包时,它显示&#34;证书未知&#34;。所以我认为Android Stuido 2.3不包括&#34; DST Root CA X3&#34;在它根CA列表。

因此,您最好尝试其他根CA发布的其他证书。

相关问题