# Obtener certificado de testing

{% hint style="info" %}
Si querés evitar este trabajo manual, podés hacerlo automáticamente a través de tu sistema con la [automatización para Crear certificado de desarrollo](https://afipsdk.com/docs/automations/create-cert-dev/nodejs/).
{% endhint %}

## Paso 1 - Instalar OpenSSL

Para la generación del certificado vamos a usar OpenSLL, el cual ya viene en los sistemas Linux/Unix. Para Windows se puede descargar desde <https://sourceforge.net/projects/openssl/>, una vez descargado copiar la carpeta `bin` en `C:\` con el nombre `OpenSSL`.

Ahora debemos abrir una consola. En Windows se debe abrir en modo administrador y navegar hacia `C:\OpenSSL`

## Paso 2 - Generar la clave de cifrado (key)

Dentro de la consola lo primero que debemos ejecutar es el siguiente comando para generar el archivo key.

```bash
openssl genrsa -traditional -out [nombre de archivo] 2048
```

Reemplazando:

> * `[nombre de archivo]` con el nombre que querés que se guarde el archivo key.

Este archivo key es muy importante porque representa la «contraseña» con la que va a funcionar el certificado así que no debemos perderlo.

Por ejemplo yo voy a generarlo de la siguiente forma

```
openssl genrsa -traditional -out keytest 2048
```

{% hint style="warning" %}
Las versiones mas antiguas de OpenSSL no soportan el parámetro -traditional, si no te funciona borralo
{% endhint %}

De esta forma el nombre de mi archivo key seria `keytest`

## Paso 3 - Generar el Certificate Signing Request (csr)

Una vez generada la key estamos listos para generar el CSR. Para ello debemos ejecutar el siguiente comando:

```
openssl req -new -key [nombre de archivo key] -subj "/C=AR/O=[nombre de la empresa]/CN=[nombre del certificado]/serialNumber=CUIT [CUIT]" -out [nombre de archivo para el CSR]
```

Reemplazando:

> * `[nombre de archivo key]` con el nombre del archivo key generado en el paso anterior.
> * `[nombre de la empresa]` con el nombre de la empresa para quien es el certificado. En testing recomendamos utilizar el nombre de uno para no generar confusiones.
> * `[nombre del certificado]` con el nombre que quieres que tenga el certificado. Solo se pueden utilizar letras y números. Esto es a modo de que puedas reconocerlo luego en la pagina de AFIP si generas varios certificados para diferentes sistemas.
> * `[CUIT]` con el CUIT de la empresa para quien es el certificado. De nuevo, en testing recomendamos usar el CUIT de uno para no generar confusiones.
> * `[nombre de archivo para el CSR]` con el nombre que quieres que se guarde el archivo CSR

Por ejemplo yo lo generaría de la siguiente forma

```bash
openssl req -new -key keytest -subj "/C=AR/O=IvanM/CN=Test1/serialNumber=CUIT 11111111111" -out csr-test1
```

Donde en `11111111111` pondría mi CUIT

Teniendo el archivos CSR ya podemos dirigirnos a la página de ARCA para generar el certificado.

{% hint style="warning" %}
ATENCIÓN: El archivo CSR no es lo mismo que el certificado, suele ser un error común confundirlos al momento de usar el certificado
{% endhint %}

## Paso 4 - Generar el certificado (cert)

Dentro de nuestro escritorio de ARCA debemos ingresar en **«WSASS - Autogestión Certificados Homologación»**

<figure><img src="https://4026677166-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVEAVwm5cCW83gSe7NH8Z%2Fuploads%2Fgit-blob-1b008cf70c684291c4f1702e29a2c6f9eaef7f88%2FScreenshot%202025-02-17%20at%2010-07-17%20Portal%20de%20Clave%20Fiscal.png?alt=media" alt=""><figcaption></figcaption></figure>

En caso de no tener esta aplicación en tu escritorio debes ver el tutorial [Habilitar administrador de certificados de testing](https://docs.afipsdk.com/recursos/tutoriales-pagina-de-arca/habilitar-administrador-de-certificados-de-testing)

Dentro de esta aplicación debemos ir a «Nuevo Certificado»

<figure><img src="https://4026677166-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVEAVwm5cCW83gSe7NH8Z%2Fuploads%2Fgit-blob-0f795d0369597688acae3238c3561ea5375fa5bc%2Fimagen.png?alt=media" alt="" width="563"><figcaption></figcaption></figure>

Allí en `1. Nombre simbólico del DN` debemos colocar el nombre que le pusimos al certificado dentro del CSR.

En `2. Solicitud del certificado en formato PKCS#10` debemos pegar el contenido de nuestro CSR.

{% hint style="info" %}
El CSR lo podes abrir con cualquier editor de texto para ver su contenido en texto plano.
{% endhint %}

Y luego apretar `Crear DN y obtener certificado`. En mi caso quedaría así

<figure><img src="https://4026677166-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVEAVwm5cCW83gSe7NH8Z%2Fuploads%2Fgit-blob-09a4fb8743e8095b7ea6c0c9503d4893bcb3ac19%2Fimagen.png?alt=media" alt="" width="563"><figcaption></figcaption></figure>

Y debajo se nos generara el certificado, este debemos guardarlo en nuestra computadora junto con la key para usarlo luego en la librería.

{% hint style="info" %}
El CSR ya no lo necesitaremos, podemos eliminarlo.
{% endhint %}

Ahora lo que nos falta por hacer es autorizar a que con este certificado se pueda acceder al/los web service/s que queramos usar.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.afipsdk.com/recursos/tutoriales-pagina-de-arca/obtener-certificado-de-testing.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
