概要
配布経路ごとに正しい Android 署名証明書の SHA-256 を特定し、Play の署名鍵とアップロード鍵を取り違えない方法。
対象: ローカル、CI、ストア管理の署名 ID を比較する開発者。
確認手順
- 実際の本番 APK に apksigner verify --print-certs を実行する。
- 証明書または保護されたキーストアには keytool -list -v も利用できる。
- SHA-256 ダイジェストをコピーし、ツールが求める場合だけ区切り記号を除く。
- Play アプリ署名証明書とアップロード証明書が同じだと決めつけず比較する。
要点
PkgReady はコロン区切りの有無をどちらも受け付け、公式 API を呼ぶ前に正規化します。
詳しい解説
リリース APK から SHA-256 を取り出す
利用者に届くものと同じ APK に apksigner を実行します。出力の Signer #1 certificate SHA-256 digest をコピーしてください。SHA-1 やデバッグ APK のフィンガープリントで置き換えないでください。
apksigner verify --print-certs app-release.apk
# Signer #1 certificate SHA-256 digest: d6ac...9e06Play アプリ署名の正しい証明書を選ぶ
Play Console にはアプリ署名証明書とアップロード証明書の両方が表示されます。アプリ署名証明書は Google Play から配信される APK の ID、アップロード証明書は CI が送る AAB の認証用です。配信済みアプリの登録確認には通常、アプリ署名証明書を使います。
- アプリ署名鍵:Play 配信 APK の ID。
- アップロード鍵:Bundle 送信の ID。
- 他ストア:そのチャネルの本番 APK を調べる。
秘密鍵を出さずに正規化する
PkgReady はコロン区切りと連続 16 進表記を受け付け、64 文字の SHA-256 に正規化します。公開フィンガープリントだけをコピーし、キーストア ファイル、パスワード、秘密鍵はフォームやチケットに貼り付けないでください。
D6:AC:89:ED:...:9E:06
d6ac89ed...9e06配布チャネルに合う指紋を選ぶ
Google Play の場合は Play Console の App integrity / App signing 情報から App signing key certificate の SHA-256 を確認します。Upload key certificate は AAB の提出者を識別するもので、Play が利用者に配布する APK の署名証明書と同じとは限りません。
Play 外のストアでは、チームが保管する想定値だけでなく、そのチャネル向けに生成した実際の APK を `apksigner verify --print-certs` で調べます。別チャネル用の成果物、debug key、APK 自体のハッシュを使わないでください。
監査表には package、version、store、certificate SHA-256、取得元、確認日を並べます。複数署名者や鍵ローテーションがある場合は、公式登録記録と成果物のどの証明書を照合したかを明記します。次の出力は説明用の形式例で、実際の指紋や取得結果ではありません。
- 照会欄に入力するのは公開証明書指紋のみです。秘密鍵や keystore は使いません。
製品版のパッケージ名を入力し、署名も照合する場合は配布 APK の証明書 SHA-256 を追加します。ストア審査やアプリの安全性とは別の確認です。
ステータスを確認 →よくある質問
SHA-1 フィンガープリントでも使えますか?
いいえ。Status API の証明書照合には SHA-256 が必要です。64 文字の 16 進値を使い、SHA-1 の 40 文字と混同しないでください。
公開フィンガープリントから秘密鍵を復元できますか?
できません。フィンガープリントは公開証明書の一方向ダイジェストです。ただし、キーストア、パスワード、秘密鍵は引き続き署名システム内で保護します。
出典と更新情報
最終確認日: