This is an issue with most browsers nowadays. they don't allow the crypto.subtle API on insecure http connections
I don't understand why but I've found it to be a pretty annoying bug
Crypto: subtle property - Web APIs | MDN
The Crypto.subtle read-only property returns a
SubtleCrypto which can then be used to perform low-level
cryptographic operations.