An open API service indexing awesome lists of open source software.

https://github.com/firsttimeez/csr

Generates a Certificate Signing Request (CSR) in DER format, encoded as base64url string, following the PKCS#10 specification.
https://github.com/firsttimeez/csr

acme asn1 base64url certificate-signing-request csr der ecdsa encoded es256 es6 es6-modules letsencrypt pkcs10 pki rfc2986

Last synced: 8 months ago
JSON representation

Generates a Certificate Signing Request (CSR) in DER format, encoded as base64url string, following the PKCS#10 specification.

Awesome Lists containing this project

README

          

# 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`: 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`