Improved support for Node.js Crypto and TLS APIs in Workers
When using a Worker with the nodejs_compat
compatibility flag enabled,
the following Node.js APIs are now available:
This make it easier to reuse existing Node.js code in Workers or use npm packages that depend on these APIs.
The full node:crypto
↗ API is now available in Workers.
You can use it to verify and sign data:
import { sign, verify } from "node:crypto";
const signature = sign("sha256", "-data to sign-", env.PRIVATE_KEY);const verified = verify("sha256", "-data to sign-", env.PUBLIC_KEY, signature);
Or, to encrypt and decrypt data:
import { publicEncrypt, privateDecrypt } from "node:crypto";
const encrypted = publicEncrypt(env.PUBLIC_KEY, "some data");const plaintext = privateDecrypt(env.PRIVATE_KEY, encrypted);
See the node:crypto
documentation for more information.
The following APIs from node:tls
are now available:
This enables secure connections over TLS (Transport Layer Security) to external services.
import { connect } from "node:tls";
// ... in a request handler ...const connectionOptions = { key: env.KEY, cert: env.CERT };const socket = connect(url, connectionOptions, () => { if (socket.authorized) { console.log("Connection authorized"); }});
socket.on("data", (data) => { console.log(data);});
socket.on("end", () => { console.log("server ends connection");});
See the node:tls
documentation for more information.
Was this helpful?
- Resources
- API
- New to Cloudflare?
- Products
- Sponsorships
- Open Source
- Support
- Help Center
- System Status
- Compliance
- GDPR
- Company
- cloudflare.com
- Our team
- Careers
- 2025 Cloudflare, Inc.
- Privacy Policy
- Terms of Use
- Report Security Issues
- Trademark