# dotnet-devcert-trust

Разбирает, почему .NET и Aspire не доверяют HTTPS-сертификату разработчика на Linux, и доводит его до системного CA-бандла.

- скилл · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 434 установки · ★ 1238
- Автор: Aaronontheweb
- Лицензия: MIT · policy=mirror · начало файла — в конце страницы
- Исходник: https://github.com/Aaronontheweb/dotnet-skills/tree/HEAD/skills/dotnet-devcert-trust/SKILL.md
- Обновлён: 2026-10-11
- HTML: https://affpapa.org/nevibecode/skills/dotnet-devcert-trust

## Что делает

На Windows и macOS команда `dotnet dev-certs https --trust` делает всё сама. На Linux она создаёт сертификат в пользовательском хранилище и на этом останавливается: файл не попадает в системный каталог CA, `update-ca-certificates` не запускается, браузерные хранилища NSS тоже не трогаются. Флаг `--trust` при этом завершается успешно, поэтому проверка `--check` показывает, что сертификат есть, а OpenSSL, curl и .NET его всё равно отвергают.

Скилл ведёт по пяти проверкам по порядку: наличие сертификата, права и лишние файлы в `/usr/local/share/ca-certificates/`, попадание в бандл `/etc/ssl/certs/ca-certificates.crt`, переменные `SSL_CERT_DIR`, `SSL_CERT_FILE`, `DOTNET_SSL_CERT_DIR` и битые симлинки. На первом провале останавливаешься и применяешь починку. Дальше — команды для Ubuntu, Fedora, Arch и WSL2, включая полное восстановление с нуля.

Повод проверить именно сейчас: начиная с Aspire 13.1.0 Redis поднимается с TLS, и без доверия на системном уровне соединение падает с `UntrustedRoot`. Правки идут через `sudo`, так что доступ к root нужен заранее.

## Установка

### Claude Code (родная платформа)

1. **Через Skills CLI (Vercel)**
```bash
npx skills add Aaronontheweb/dotnet-skills --skill dotnet-devcert-trust -a claude-code
```

2. **Вручную: положить файлы**
- Файл: `~/.claude/skills/dotnet-devcert-trust/SKILL.md` — Папка скилла целиком; для одного проекта — .claude/skills/dotnet-devcert-trust/

### Codex

1. **Через Skills CLI (Vercel)**
```bash
npx skills add Aaronontheweb/dotnet-skills --skill dotnet-devcert-trust -a codex
```

2. **Вручную: положить файлы**
- Файл: `.agents/skills/dotnet-devcert-trust/SKILL.md` — Для всех проектов — ~/.agents/skills/

### Cursor

1. **Через Skills CLI (Vercel)**
```bash
npx skills add Aaronontheweb/dotnet-skills --skill dotnet-devcert-trust -a cursor
```

2. **Вручную: положить файлы**
- Файл: `.cursor/skills/dotnet-devcert-trust/SKILL.md` — Cursor читает и .agents/skills/, и .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install Aaronontheweb/dotnet-skills dotnet-devcert-trust
```

2. **Вручную: положить файлы**
- Файл: `.github/skills/dotnet-devcert-trust/SKILL.md`

### Gemini CLI

1. **Через Skills CLI (Vercel)**
```bash
npx skills add Aaronontheweb/dotnet-skills --skill dotnet-devcert-trust -a gemini-cli
```

2. **Командой платформы**
```bash
gemini skills install https://github.com/Aaronontheweb/dotnet-skills --path skills/dotnet-devcert-trust
```

### Windsurf (Devin Desktop)

**Вручную: положить файлы**
- Файл: `.devin/skills/dotnet-devcert-trust/SKILL.md` — Старый путь .windsurf/skills/ тоже читается

### OpenCode

**Через Skills CLI (Vercel)**
```bash
npx skills add Aaronontheweb/dotnet-skills --skill dotnet-devcert-trust -a opencode
```

### Claude.ai

**Claude.ai**
- Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills

Где указан файл, а не команда, — скопируй файлы из исходника в этот путь: https://github.com/Aaronontheweb/dotnet-skills/tree/HEAD/skills/dotnet-devcert-trust/SKILL.md

## Когда брать
- починить падение Redis TLS в Aspire с ошибкой UntrustedRoot
- восстановить доверие после `dotnet dev-certs https --clean`
- найти лишние файлы сертификатов в `/usr/local/share/ca-certificates/`
- пересобрать CA-бандл, если сертификат лежит, но не проверяется
- настроить HTTPS-разработку на свежей Linux-машине или в WSL2

## Примеры запросов агенту
- Соединение с Redis в Aspire падает с UntrustedRoot — разберись с dev-сертификатом
- \`dotnet dev-certs https --check --trust` возвращает код 7, почини доверие на Linux
- Проверь, попал ли dev-сертификат в системный CA-бандл

## Похожие
- [dotnet-fullstack-mentor](https://affpapa.org/nevibecode/agents/dotnet-fullstack-mentor.md) — субагент · ★ 40418
- [mtls-configuration](https://affpapa.org/nevibecode/skills/mtls-configuration.md) — скилл · 10300 установок
- [aspire](https://affpapa.org/nevibecode/skills/aspire.md) — скилл · 2800 установок
- [aspireify](https://affpapa.org/nevibecode/skills/aspireify.md) — скилл · 630 установок
- [dotnet-trace-collect](https://affpapa.org/nevibecode/skills/dotnet-trace-collect.md) — скилл · 3800 установок
- [sentry-dotnet-sdk](https://affpapa.org/nevibecode/skills/sentry-dotnet-sdk.md) — скилл · 2300 установок

Из того же набора: [aaronontheweb/dotnet-skills](https://affpapa.org/nevibecode/by/aaronontheweb/dotnet-skills.md) — 32 карточки

_Часть страницы не вошла по размеру — она есть в HTML-версии._

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
