2015-11-04 20 views
5

Sto provando a passare lo Apple Search Validation Tool e sto riscontrando problemi con l'associazione sito-mela-app.Apple-app-site-association non trovata

Per qualche motivo il bot non riesce a trovare il mio file. Ma se apri l'URL è lì.

Non si tratta di un problema di formattazione, in quanto il file non viene nemmeno trovato. Ho https quindi non è necessario firmare il mio file.

Non ho alcuna estensione sul mio file, come richiesto nella documentazione.

Qualcuno ha avuto un problema simile e ha chiesto il Apple Developer foruns, ma non mi ha aiutato.

mio URL è https://ps3looke.ottvs.com.br/apple-app-site-association

ho cercato di controllare con l'arricciatura e tutto sembra normale:

Caios-MacBook-Air:~ caiocoan$ curl -I https://ps3looke.ottvs.com.br/apple-app-site-association 
HTTP/1.1 200 OK 
Content-Length: 135 
Content-Type: application/json 
Last-Modified: Tue, 27 Oct 2015 15:36:52 GMT 
Accept-Ranges: bytes 
ETag: "f81e714dcd10d11:0" 
Server: Microsoft-IIS/8.5 
X-Powered-By: ASP.NET 
Date: Wed, 04 Nov 2015 20:43:25 GMT 

Qualsiasi ideia di quello che ho potuto fare male, o che cosa devo fare?

risposta

3

Attualmente sto contattando il supporto Microsoft per lo stesso problema. Il mio primo accesso è che Windows Server 2012 R2 presenta un bug nella gestione di TLS 1.2, che è il protocollo HTTPS utilizzato da AppleBot per eseguire la scansione delle pagine.

vostro Apple-app-site-associazione sembra perfettamente bene

Modifica

ho scoperto che anche con lo strumento di convalida non funziona, quando si visita il sito in Safari su iPad/iPhone, Open in app xxx fa saltar fuori

Aggiornamento 2015-12-22

Microsoft ha ottenuto di nuovo me. Il problema è che AppleBot invia il seguente client Ciao di avviare la connessione SSL

Signature Hash Algorithms (4 algorithms) 
    Signature Hash Algorithm: 0x0401 
     Signature Hash Algorithm Hash: SHA256 (4) 
     Signature Hash Algorithm Signature: RSA (1) 
    Signature Hash Algorithm: 0x0403 
     Signature Hash Algorithm Hash: SHA256 (4) 
     Signature Hash Algorithm Signature: ECDSA (3) 
    Signature Hash Algorithm: 0x0201 
     Signature Hash Algorithm Hash: SHA1 (2) 
     Signature Hash Algorithm Signature: RSA (1) 
    Signature Hash Algorithm: 0x0203 
     Signature Hash Algorithm Hash: SHA1 (2) 
     Signature Hash Algorithm Signature: ECDSA (3) 

Quando si guarda la gerarchia certificati del proprio certificato SSL, si vede

COMODO RSA Organization Validation Secure Server CA 
    Certificate signature algorithm 
     PKCS #1 SHA-384 With RSA Encryption 

Quando Windows Server riceve il client Ciao da AppleBot, vede che AppleBot supporta SHA1 e SHA256, tuttavia, il certificato richiede il supporto per SHA384. Pertanto, in base a http://tools.ietf.org/html/rfc5246#section-7.4.1.4.1, non è possibile soddisfare la richiesta e Windows Server reimposta la connessione. AppleBot riporta quindi come file non trovato.

In particolare, RFC5246 dice

If the client provided a "signature_algorithms" extension, then all 
    certificates provided by the server MUST be signed by a 
    hash/signature algorithm pair that appears in that extension. 

rimedio suggerito da Microsoft

Quando è necessario utilizzare il validatore, creare un certificato auto-firmato. Per impostazione predefinita, Windows utilizza SHA1 come algoritmo di firma del certificato. Associare il certificato autofirmato al proprio endpoint HTTPS, quindi utilizzare il validatore per assicurarsi che il file dell'associazione sito Apple-app sia corretto. È quindi possibile tornare al certificato SSL effettivo acquistato.

mio avvertimento

Non mettere un CERT auto-firmato nel server di produzione. Crea un altro server da testare!

+0

vedo. Grazie per la tua risposta, se hai qualche notizia potresti modificarla e condividerla? –

+0

MS Support è andato in pausa nel fine settimana, vediamo cosa dicono lunedì ... –

+0

@KioCoan MS Support ha trovato il problema –

1

sono stato in grado di risolvere questo problema con il modulo URL Rewrite con l'aggiunta di un'estensione .json al nome del file e quindi aggiungendo una regola di riscrittura al mio web.config come segue:

<rule name="AppleAppSite" enabled="true" stopProcessing="true"> 
    <match url="^apple-app-site-association$"/> 
    <action type="Rewrite" url="apple-app-site-association.json"/> 
</rule>