diff --git a/internal/oci/list.go b/internal/oci/list.go
index e827c472c227380ee4a82b1ca5774c20cee945f9..9901d1d8265b9c9461defe9782253cd3de330d9c 100644
--- a/internal/oci/list.go
+++ b/internal/oci/list.go
@@ -57,12 +57,17 @@ func List(ctx context.Context, url string) ([]Metadata, error) {
 			return nil, fmt.Errorf("parsing manifest failed: %w", err)
 		}
 
-		meta.Digest = manifest.Config.Digest.String()
 		if m, err := MetadataFromAnnotations(manifest.Annotations); err == nil {
 			meta.Revision = m.Revision
 			meta.Source = m.Source
 		}
 
+		digest, err := crane.Digest(meta.URL, craneOptions(ctx)...)
+		if err != nil {
+			return nil, fmt.Errorf("fetching digest failed: %w", err)
+		}
+		meta.Digest = digest
+
 		metas = append(metas, meta)
 	}