Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add retrieve fingerprints page #1052

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,134 @@
---
title: Retrieve Android certificate fingerprints
description: Retrieve Android certificate fingerprints to configure Adjust features
slug: en/sdk/android/integrations/retrieve-certificate-fingerprints
---

A certificate fingerprint is a cryptographic hash of the public information held within a certificate. Certificate fingerprints are public information, and are designed to be used by third-parties for Android app verification. Adjust never requests private app signing keys. For more information about certificate fingerprints, see [Google’s documentation](https://developer.android.com/studio/publish/app-signing#api-providers).

Adjust uses certificate fingerprints for the following features:

<Table>

| Feature | Hashing algorithm |
| -------------------------------------------------------------------------------- | ----------------- |
| [SDK Signature](https://help.adjust.com/en/article/sdk-signature) | SHA-1 |
| [Android App Links](https://help.adjust.com/en/article/set-up-android-app-links) | SHA-256 |

</Table>

The optimal method to retrieve certificate fingerprints depends on where the app is published. Use the information in the table below to identify the most suitable approach for each scenario that's applicable to your app. Obtain fingerprints for all relevant builds (for example, debug build, Google Play release build).

<Table>

| Hosting service | Recommended approach |
| ------------------------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------- |
| Google Play | [Google Play Console](#from-google-play-console) |
| Google Play test track | [Google Play Console - Internal app sharing](#from-google-play-console---internal-app-sharing) |
| Huawei AppGallery - App Signing Enabled | [AppGallery Connect](#from-appgallery-connect) |
| <br />Huawei AppGallery - App Signing Disabled <br /><br /> Other store, or direct APK download <br /><br /> Local debug build<br /><br /> | [Keystore](#from-a-keystore) |

</Table>

#### From Google Play Console

1. In [Google Play Console](https://play.google.com/console), go to your app.
2. Under **Release**, go to **Setup > App signing**.
3. If you're using Play App Signing, the **App signing key certificate** section will be present. In this section, copy the **SHA-1 certificate fingerprint** and/or **SHA-256 certificate fingerprint**.

![Screenshot of the app signing key certificate page in Google Play Console](@images/sig-v3/google-play-app-signing.png)

4. Under **Upload key certificate**, copy the **SHA-1 certificate fingerprint** and/or **SHA-256 certificate fingerprint**.

![Screenshot of the upload key certificate page in Google Play Console](@images/sig-v3/google-play-upload.png)

#### From Google Play Console - Internal app sharing

1. In [Google Play Console](https://play.google.com/console), go to your app.
2. Under **Release**, go to **Setup > Internal app sharing**.
3. Under **Internal test certificate**, copy the **SHA-1 certificate fingerprint** and/or **SHA-256 certificate fingerprint**.

![Screenshot of the internal app sharing key certificate page in Google Play Console](@images/sig-v3/google-play-internal-app-sharing.png)

#### From AppGallery Connect

<Callout type="note">

If you use Huawei App Signing, follow the below instructions.

If you don't use Huawei App Signing, follow the [instructions for retrieving your certificate fingerprint from a keystore](#from-a-keystore).

</Callout>

<Tabs>
<Tab title="SHA-1" sync="sha-1">
1. In [AppGallery Connect](https://developer.huawei.com/consumer/en/service/josp/agc/index.html), select **My Apps**.

Check warning on line 65 in src/content/docs/sdk/android/integrations/retrieve-certificate-fingerprints.mdx

View workflow job for this annotation

GitHub Actions / vale

[vale] src/content/docs/sdk/android/integrations/retrieve-certificate-fingerprints.mdx#L65

[Microsoft.FirstPerson] Use first person (such as 'My') sparingly.
Raw output
{"message": "[Microsoft.FirstPerson] Use first person (such as 'My') sparingly.", "location": {"path": "src/content/docs/sdk/android/integrations/retrieve-certificate-fingerprints.mdx", "range": {"start": {"line": 65, "column": 108}}}, "severity": "WARNING"}
2. Select your app.
3. Under **Services**, go to **App Signing**.
4. Under **App Signature Certificate** and **Upload Certificate**, respectively, select **Download Certificate**.

![Screenshot of the certificate page in Huawei AppGallery](@images/sig-v3/huawei-sha1.png)

5. Run the following command on each certificate file (certificate.pem) to output the SHA-1 fingerprint of the certificate.

```
openssl x509 -fingerprint -in certificate.pem -noout -SHA1
```

The output looks like this:

```
SHA1 Fingerprint=C4:BD:07:91:BC:09:F8:B6:15:CD:BC:A3:3F:BC:68:8B:C2:EF:4F:F5
```

</Tab>
<Tab title="SHA-256" sync="sha-256">
1. In [AppGallery Connect](https://developer.huawei.com/consumer/en/service/josp/agc/index.html), select **My Apps**.

Check warning on line 86 in src/content/docs/sdk/android/integrations/retrieve-certificate-fingerprints.mdx

View workflow job for this annotation

GitHub Actions / vale

[vale] src/content/docs/sdk/android/integrations/retrieve-certificate-fingerprints.mdx#L86

[Microsoft.FirstPerson] Use first person (such as 'My') sparingly.
Raw output
{"message": "[Microsoft.FirstPerson] Use first person (such as 'My') sparingly.", "location": {"path": "src/content/docs/sdk/android/integrations/retrieve-certificate-fingerprints.mdx", "range": {"start": {"line": 86, "column": 108}}}, "severity": "WARNING"}
2. Select your app.
3. Under **Services**, go to **App Signing**.
4. Under **App Signature Certificate** and **Upload Certificate**, respectively, copy each SHA-256 certificate fingerprint.

![Screenshot of the certificate page in Huawei AppGallery](@images/sig-v3/huawei-sha256.png)

</Tab>
</Tabs>

#### From a keystore

To retrieve certificate fingerprints from your keystore (self-managed or Android Studio-generated), follow these steps:

1. Find the keystore file (.jks) you used to sign the app.
2. Run this command, replacing \<path/to/keystore.jks\> and \<your_key_alias\> with your specific information:

```
keytool -list -v -keystore <path/to/keystore.jks> -alias <your_key_alias>
```

3. When prompted, enter the keystore password you set during keystore generation.

The output looks like this:

```
Alias name: Key0
Creation date: May 15, 2018
Entry type: PrivateKeyEntry
Certificate chain length: 1
Certificate[1]:
Owner: CN=[Adjust, GmbH.]
Issuer: CN=[Adjust, GmbH.]
Serial number: 642f1b62
Valid from: Tue May 15 09:46:06 CEST 2018 until: Sat May 09
09:46:06 CEST 2043
Certificate fingerprints:
MD5: E7:88:9F:8C:9D:F4:14:C1:CF:E8:4C:97:F3:F2:3A:E3
SHA1:
C4:BD:07:91:BC:09:F8:B6:15:CD:BC:A3:3F:BC:68:8B:C2:EF:4F:F5
SHA256:
55:FB:97:0F:46:0F:94:EC:07:EA:01:69:50:5A:20:3F:A0:91:60:A4:F
1:33:58:EA:76:DC:54:9E:A7:6A:B9:1A
Signature algorithm name: SHA256withRSA
Subject Public Key Algorithm: 2048-bit RSA key
Version: 3
```

Retrieve the SHA1 and/or SHA256 values from the output.
96 changes: 1 addition & 95 deletions src/content/docs/sdk/android/integrations/signature-library.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -83,101 +83,7 @@ You must add the fingerprints of your signing certificates to the allowlist. If

</Callout>

#### [From a keystore](from-a-keystore)

If you use your own keystore, or if Android Studio generated a keystore for you, you can retrieve the certificate fingerprint by following these steps:

1. Find the keystore file (`.jks`) you used to sign **the release version of your app**. The keystore must be the one you used to sign the release version sent to the Google Play Store. If the keystore is different, your SDK requests will be rejected.
2. Run the following command to list your keys. Replace the parts in angle brackets with your information.

```console
$ keytool -list -v -keystore <path/to/keystore.jks> -alias <your_key_alias>
```

This command prompts you for your keystore password. This is the password you defined when you generated the keystore.

The final output looks like this:

```text
Alias name: Key0
Creation date: May 15, 2018
Entry type: PrivateKeyEntry
Certificate chain length: 1
Certificate[1]:
Owner: CN=[Adjust, GmbH.]
Issuer: CN=[Adjust, GmbH.]
Serial number: 642f1b62
Valid from: Tue May 15 09:46:06 CEST 2018 until: Sat May 09
09:46:06 CEST 2043
Certificate fingerprints:
MD5: E7:88:9F:8C:9D:F4:14:C1:CF:E8:4C:97:F3:F2:3A:E3
SHA1:
C4:BD:07:91:BC:09:F8:B6:15:CD:BC:A3:3F:BC:68:8B:C2:EF:4F:F5
SHA256:
55:FB:97:0F:46:0F:94:EC:07:EA:01:69:50:5A:20:3F:A0:91:60:A4:F
1:33:58:EA:76:DC:54:9E:A7:6A:B9:1A
Signature algorithm name: SHA256withRSA
Subject Public Key Algorithm: 2048-bit RSA key
Version: 3
```

3. Save the SHA-1 fingerprint to [add to your allowlist in the Adjust Suite](#add-your-digital-certificate-fingerprints-to-adjusts-allowlist).

#### [From Google Play Internal App Sharing](from-google-play-internal-app-sharing)

If you use [Google Play Internal App Sharing](https://support.google.com/googleplay/android-developer/answer/9303479?hl=en), you need to send both your organization’s SHA-1 certificate fingerprint and your Internal test certificate fingerprint to Adjust for allowlisting.

To extract the fingerprints:

1. Navigate to the Google Play Console and log in.
2. Select your app.
3. Select **Release Management --> App Releases --> Manage internal app sharing > App certificates**.
4. Save the **SHA-1 certificate fingerprint** for both the **Internal test certificate** and your organization’s keystore to [add to your allowlist in the Adjust Suite](#add-your-digital-certificate-fingerprints-to-adjusts-allowlist).

![A screenshot of the certficate page in Google Play Console](@images/sig-v3/google-play-internal-sharing.png)

#### [From Google Play App Signing](from-google-play-app-signing)

If you use [Google Play App Signing](https://support.google.com/googleplay/android-developer/answer/7384423?hl=en), you need to send both your organization’s SHA-1 certificate fingerprint and your Internal test certificate fingerprint to Adjust for allowlisting.

To extract the fingerprints:

1. Navigate to the Google Play Console and log in.
2. Select your app.
3. Select **Release Management > App Signing**.
4. Save the **SHA-1 certificate fingerprint** for both the **App signing certificate** and **Upload certificate** to send to Adjust.

![A screenshot of the App signing page in the Google Play Console](@images/sig-v3/google-play-signing.png)

#### [From Huawei AppGallery App Signing](from-huawei-appgallery-app-signing)

If you use Huawei AppGallery App Signing, you need to send both your organization’s SHA-1 certificate fingerprint and your Internal test certificate fingerprint to Adjust for allowlisting.

<Callout type="note">

If you use your own signing certificate with Huawei AppGallery, follow the [instructions for retrieving your certificate fingerprint from a keystore](#from-a-keystore).

</Callout>

To extract the fingerprints:

1. Navigate to the App Signing page in AppGallery Connect and download the App signing certificate (`certificate.pem`).

![A screenshot of the App Signing page in AppGallery Connect](@images/sig-v3/huawei-appgallery-signing.png)

2. Once you’ve downloaded the certificate, run the following command to output the SHA-1 fingerprint of the certificate.

```console
$ openssl x509 -fingerprint -in certificate.pem -noout -SHA1
```

The output looks like this:

```text
SHA1 Fingerprint=C4:BD:07:91:BC:09:F8:B6:15:CD:BC:A3:3F:BC:68:8B:C2:EF:4F:F5
```

3. Save the fingerprint to [add to your allowlist in the Adjust Suite](#add-your-digital-certificate-fingerprints-to-adjusts-allowlist)..
[Retrieve Android certificate fingerprints](https://dev.adjust.com/en/sdk/android/integrations/retrieve-certificate-fingerprints)

### [Add your digital certificate fingerprints to Adjust’s allowlist](add-your-digital-certificate-fingerprints-to-adjust-s-allowlist)

Expand Down
96 changes: 1 addition & 95 deletions src/content/docs/sdk/unity/integrations/signature-library.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -71,101 +71,7 @@ You must add the fingerprints of your signing certificates to the allowlist. If

</Callout>

#### [From a keystore](from-a-keystore)

If you use your own keystore, or if Android Studio generated a keystore for you, you can retrieve the certificate fingerprint by following these steps:

1. Find the keystore file (`.jks`) you used to sign **the release version of your app**. The keystore must be the one you used to sign the release version sent to the Google Play Store. If the keystore is different, your SDK requests will be rejected.
2. Run the following command to list your keys. Replace the parts in angle brackets with your information.

```console
$ keytool -list -v -keystore <path/to/keystore.jks> -alias <your_key_alias>
```

This command prompts you for your keystore password. This is the password you defined when you generated the keystore.

The final output looks like this:

```text
Alias name: Key0
Creation date: May 15, 2018
Entry type: PrivateKeyEntry
Certificate chain length: 1
Certificate[1]:
Owner: CN=[Adjust, GmbH.]
Issuer: CN=[Adjust, GmbH.]
Serial number: 642f1b62
Valid from: Tue May 15 09:46:06 CEST 2018 until: Sat May 09
09:46:06 CEST 2043
Certificate fingerprints:
MD5: E7:88:9F:8C:9D:F4:14:C1:CF:E8:4C:97:F3:F2:3A:E3
SHA1:
C4:BD:07:91:BC:09:F8:B6:15:CD:BC:A3:3F:BC:68:8B:C2:EF:4F:F5
SHA256:
55:FB:97:0F:46:0F:94:EC:07:EA:01:69:50:5A:20:3F:A0:91:60:A4:F
1:33:58:EA:76:DC:54:9E:A7:6A:B9:1A
Signature algorithm name: SHA256withRSA
Subject Public Key Algorithm: 2048-bit RSA key
Version: 3
```

3. Save the SHA-1 fingerprint to [add to your allowlist in the Adjust Suite](#add-your-digital-certificate-fingerprints-to-adjusts-allowlist).

#### [From Google Play Internal App Sharing](from-google-play-internal-app-sharing)

If you use [Google Play Internal App Sharing](https://support.google.com/googleplay/android-developer/answer/9303479?hl=en), you need to send both your organization’s SHA-1 certificate fingerprint and your Internal test certificate fingerprint to Adjust for allowlisting.

To extract the fingerprints:

1. Navigate to the Google Play Console and log in.
2. Select your app.
3. Select **Release Management --> App Releases --> Manage internal app sharing > App certificates**.
4. Save the **SHA-1 certificate fingerprint** for both the **Internal test certificate** and your organization’s keystore to [add to your allowlist in the Adjust Suite](#add-your-digital-certificate-fingerprints-to-adjusts-allowlist).

![A screenshot of the certficate page in Google Play Console](@images/sig-v3/google-play-internal-sharing.png)

#### [From Google Play App Signing](from-google-play-app-signing)

If you use [Google Play App Signing](https://support.google.com/googleplay/android-developer/answer/7384423?hl=en), you need to send both your organization’s SHA-1 certificate fingerprint and your Internal test certificate fingerprint to Adjust for allowlisting.

To extract the fingerprints:

1. Navigate to the Google Play Console and log in.
2. Select your app.
3. Select **Release Management > App Signing**.
4. Save the **SHA-1 certificate fingerprint** for both the **App signing certificate** and **Upload certificate** to send to Adjust.

![A screenshot of the App signing page in the Google Play Console](@images/sig-v3/google-play-signing.png)

#### [From Huawei AppGallery App Signing](from-huawei-appgallery-app-signing)

If you use Huawei AppGallery App Signing, you need to send both your organization’s SHA-1 certificate fingerprint and your Internal test certificate fingerprint to Adjust for allowlisting.

<Callout type="note">

If you use your own signing certificate with Huawei AppGallery, follow the [instructions for retrieving your certificate fingerprint from a keystore](#from-a-keystore).

</Callout>

To extract the fingerprints:

1. Navigate to the App Signing page in AppGallery Connect and download the App signing certificate (`certificate.pem`).

![A screenshot of the App Signing page in AppGallery Connect](@images/sig-v3/huawei-appgallery-signing.png)

2. Once you’ve downloaded the certificate, run the following command to output the SHA-1 fingerprint of the certificate.

```console
$ openssl x509 -fingerprint -in certificate.pem -noout -SHA1
```

The output looks like this:

```text
SHA1 Fingerprint=C4:BD:07:91:BC:09:F8:B6:15:CD:BC:A3:3F:BC:68:8B:C2:EF:4F:F5
```

3. Save the fingerprint to [add to your allowlist in the Adjust Suite](#add-your-digital-certificate-fingerprints-to-adjusts-allowlist)..
[Retrieve Android certificate fingerprints](https://dev.adjust.com/en/sdk/android/integrations/retrieve-certificate-fingerprints)

### [Add your digital certificate fingerprints to Adjust’s allowlist](add-your-digital-certificate-fingerprints-to-adjust-s-allowlist)

Expand Down
Binary file added src/images/sig-v3/google-play-app-signing.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/images/sig-v3/google-play-upload.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/images/sig-v3/huawei-sha1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/images/sig-v3/huawei-sha256.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading