๐Ÿ”’ Certificate Ripper

March 29, 2026 ยท View on GitHub

A Nintendo 3DS homebrew application that extracts TLS server certificates directly from your 3DS device. Inspired by Hakky54/certificate-ripper.


Features

  • Connect to any HTTPS host and extract its full certificate chain
  • Display subject, issuer, validity dates, public key, serial number and SHA-256 fingerprint
  • Export certificates in multiple formats:
    • PEM โ€“ single certificate (.pem)
    • DER โ€“ single certificate (.der)
    • Chain PEM โ€“ all certificates in the chain as individual .pem files
    • PKCS12 / truststore โ€“ all certificates accumulated into a single truststore.p12 (password: changeit)
  • The truststore.p12 is a cumulative store: each save adds new certificates and deduplicates by SHA-256 fingerprint
  • Only https:// scheme is supported

Installation

  1. Go to the Releases page and download certificate-ripper.3dsx.

  2. Copy the file there:

    SD:/3ds/certificate-ripper.3dsx
    
  3. Insert the SD card into your 3DS and launch the app via the Homebrew Launcher.


Usage

ButtonAction
AEnter a host (keyboard opens pre-filled with https://)
BSave current certificate as PEM
YSave current certificate as DER
XSave full chain as PEM files
SELECTSave all certs to truststore.p12
L / RNavigate previous / next certificate in the chain
โ†‘ / โ†“Scroll certificate details
STARTExit

Output location

All files are saved to sdmc:/3ds/crip/:

SD:/3ds/crip/
โ”œโ”€โ”€ <host>_1.pem          # single cert PEM
โ”œโ”€โ”€ <host>_1.der          # single cert DER
โ”œโ”€โ”€ truststore.p12        # cumulative PKCS12 truststore
โ””โ”€โ”€ certs/                # internal cert store (one .der per unique cert)

Using truststore.p12 with Java

keytool -list -keystore truststore.p12 -storetype PKCS12 -storepass changeit

Building from source

Prerequisites

  • devkitPro with devkitARM
  • 3DS libraries: 3ds-mbedtls, 3ds-citro2d, 3ds-libctru

Install via pacman:

dkp-pacman -S 3ds-dev 3ds-mbedtls 3ds-citro2d

Build

make

The build produces:

3ds-certificate-ripper.3dsx   # homebrew executable
3ds-certificate-ripper.smdh   # icon + metadata
3ds-certificate-ripper.elf    # debug ELF

Clean

make clean      # remove build artefacts

Technical details

  • TLS: raw POSIX sockets + mbedTLS (verification disabled so even self-signed/expired certs are captured)
  • PKCS12: hand-built RFC 7292 PFX using mbedTLS ASN.1 primitives, SHA-256 MAC, 10 000 iterations
  • UI: citro2d with the system font
  • Platform: ARMv6K, tested on Nintendo 3DS / New 3DS

License

Apache 2.0