simple-csr-generator
Version:
Generates a Simple Certificate Signing Request (CSR) using existing public and private key pairs.
65 lines (40 loc) • 1.98 kB
Markdown
# Simple Certificate Signing Request Generator (CSR)
A robust and secure JavaScript library for generating Certificate Signing Requests (CSRs)
This library follows the `PKCS#10` specification and implements CSR generation with `SHA-256` signing.
## Features
- `PKCS#10` compliant implementation
- `DNS` Subject Alternative Names (`SAN`)
- `DER` encoding with `base64url` output format
## Usage
```javascript
import { generateCSRWithExistingKeys } from 'simple-csr-generator';
async function generateCSR(publicKeyES256, privateKeyES256) {
try {
const commonName = 'www.ssl.boats';
const dnsNames = ["www.ssl.boats", "ssl.boats"];
const csr = await generateCSRWithExistingKeys(commonName, publicKeyES256, privateKeyES256, dnsNames);
console.log('Generated CSR:', csr);
} catch (error) {
console.error('Failed to generate CSR:', error);
}
}
```
-----------------------
## API Reference
### generateCSRWithExistingKeys(commonName, publicKey, privateKey, dnsNames)
Generates a `SHA-256` Certificate Signing Request (CSR) in `DER` format, encoded as `base64url` string, following the `PKCS#10` specification.
#### Parameters
- `commonName` (string): The common name (`CN`) to be included in the `CSR` subject field.
- `publicKey` (KeyObject): The public key to be included in the `CSR`.
- `privateKey` (KeyObject): The private key that corresponds to the provided public key.
- `dnsNames` (array): Array of DNS names to use for Subject Alternative Names (`SAN`)
#### Returns
- `Promise<string>`: Base64URL-encoded `DER` format `CSR`
-----------------------
## Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
For major changes, please open an issue first to discuss what you would like to change.
## Acknowledgments
- [`RFC 2986`](https://tools.ietf.org/html/rfc2986) - `PKCS #10`: Certification Request Syntax Specification
---
Made with ❤️ by `FirstTimeEZ`