# ssl-gandi-gitlab-certs-builder

> Library ssl-gandi-gitlab-certs-builder description

Latest version **1.0.2** (published 2020-09-02) · UNLICENSED license · 0 weekly downloads

## Install

```sh
npm install ssl-gandi-gitlab-certs-builder
pnpm add ssl-gandi-gitlab-certs-builder
yarn add ssl-gandi-gitlab-certs-builder
bun add ssl-gandi-gitlab-certs-builder
```

Provides the command `gandi-ssl`.

## Health

**Score 20/100 (F)** — status: abandoned.

Positive: esm support; no vulnerabilities.

Warnings: low downloads; no types.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.0.2 |
| Published | 2020-09-02 |
| First published | 2018-01-21 |
| Weekly downloads | 0 |
| License | UNLICENSED |
| TypeScript types | none |
| Module format | ESM + CommonJS |
| Dependencies | 4 |
| Unpacked size | 40.4 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Author | Dimitri Kopriwa |
| Maintainers | kopax |
| Keywords | gandi, certificates, certs, ssl |

## Links

- npm: https://www.npmjs.com/package/ssl-gandi-gitlab-certs-builder
- Repository: https://module.kopaxgroup.com/deploy-tools/ssl-gandi-gitlab-certs-builder
- Issues: https://module.kopaxgroup.com/kopaxgroup/ssl-gandi-gitlab-certs-builder/issues
- npm.io page: https://npm.io/package/ssl-gandi-gitlab-certs-builder

## Dependencies (4)

- [async](https://npm.io/package/async.md) ^2.6.0
- [xmlrpc](https://npm.io/package/xmlrpc.md) ^1.3.2
- [follow-redirects](https://npm.io/package/follow-redirects.md) ^1.13.0
- [escape-string-regexp](https://npm.io/package/escape-string-regexp.md) ^1.0.5

## Recent versions

- 1.0.2 (latest) — 2020-09-02
- 1.0.1 — 2018-09-22
- 1.0.0 — 2018-09-22
- 0.0.8 — 2018-02-11
- 0.0.7 — 2018-01-21
- 0.0.6 — 2018-01-21
- 0.0.5 — 2018-01-21
- 0.0.4 — 2018-01-21
- 0.0.3 — 2018-01-21
- 0.0.2 — 2018-01-21

## README

# ssl-gandi-gitlab-certs-builder

This tools retrieve through Gandi HTTP API, latest certificate using environment variables **or command line arguments**, and certificate from your gandi account, and place them into a folder.

It can be used in CI to update a certificates.

**Master**

[![build status](https://module.kopaxgroup.com/kopaxgroup/ssl-gandi-gitlab-certs-builder/badges/master/build.svg)](https://module.kopaxgroup.com/kopaxgroup/ssl-gandi-gitlab-certs-builder/commits/master)
[![coverage report](https://module.kopaxgroup.com/kopaxgroup/ssl-gandi-gitlab-certs-builder/badges/master/coverage.svg)](https://module.kopaxgroup.com/kopaxgroup/ssl-gandi-gitlab-certs-builder/commits/master)

**Dev**

[![build status](https://module.kopaxgroup.com/kopaxgroup/ssl-gandi-gitlab-certs-builder/badges/dev/build.svg)](https://module.kopaxgroup.com/kopaxgroup/ssl-gandi-gitlab-certs-builder/commits/dev)
[![coverage report](https://module.kopaxgroup.com/kopaxgroup/ssl-gandi-gitlab-certs-builder/badges/dev/coverage.svg)](https://module.kopaxgroup.com/kopaxgroup/ssl-gandi-gitlab-certs-builder/commits/dev)

## Table of Contents

  - [Changelog](#changelog)
  - [Environment Variables](#environment-variables)
  - [Command line arguments](#command-line-arguments)
  - [Installation](#installation)
  - [Usage](#usage)

---

## Changelog

  - View [Changelog](CHANGELOG.md)


## Environment Variables

Set these environment while running the script to download the list of SSL certificate from gandi into `./ssl`.

- `GANDI_RPC`: Gandi RPC API Url *(Default to `https://rpc.gandi.net:443/xmlrpc/`)*
- `GANDI_CA`: Gandi CA url *(Default to `https://v4.gandi.net/static/CAs/GandiStandardSSLCA2.pem`)*
- `GANDI_API_KEY`: API Key *(Required)*
- `GANDI_CN`: CN of the certificate on your Gandi account *(Required)*
- `PRIVATE_KEY`: Gitlab Key URL *(Required)*
- `PRIVATE_TOKEN`: Gitlab private token to read the key *(Required)*
- `DEST_CA_FILENAME`: Destination ca filename without extension  *(Default to `null`)*
- `DEST_FILENAME`: Destination for key/crt/combined filename without extension *(Default to `null`)*
- `DEST_DIRECTORY`: Destination for key/crt/combined filename without extension  *(Default to `ssl`)*

It will download and build certificate in `./ssl`.

If you have not set `DEST_CA_FILENAME` and `DEST_FILENAME`, it will use original name from URL.

- `ssl/${ca.filename}` : Store the CA without changing the filename.
- `ssl/${key.filename}` : Store the key without changing the filename.
- `ssl/${key.filename.replace(/.(key|pem)/, '.crt')}` : Store the crt without changing the filename.
- `ssl/${key.filename.replace(/.(key|pem)/, '.combined.crt')}` : Store the combined crt without changing the filename.

You can then use any script to set roles and permissions according to your application. 

It is also possible to use a `Dockerfile` to build a container with latest certificate in it.

## Command line arguments

You can override any enviroment by using the command line arguments:

```bash
--DEST_DIRECTORY=alpha
```

## Installation

You can install it globally and use it as a command line tool.

```bash
npm install -g ssl-gandi-gitlab-certs-builder
```

Or you can import any components

```bash
import GandiCertDownloader from 'ssl-gandi-gitlab-certs-builder';
```

## Usage

```bash
gandi-ssl --GANDI_API_KEY=gandiApiKey --GANDI_CN=gandiSslCn --PRIVATE_KEY=http://gitlab.com/test/ssl/raw/master/wildcard.domain.com.key --PRIVATE_TOKEN=gitlabApiKey
```

Example with `*.kopaxgroup.com`:

```bash
gandi-ssl --GANDI_CN=*.kopaxgroup.com  --PRIVATE_KEY="http://private:31584/api/v4/projects/54/repository/files/ssl%2Fwildcard.kopaxgroup.com.key/raw?ref=dev" --PRIVATE_TOKEN=$PRIVATE_TOKEN --GANDI_API_KEY=$GANDI_API_KEY
```

---
_Source: https://npm.io/package/ssl-gandi-gitlab-certs-builder · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
