Skip to main content

인증서 릴레이

PC에 설치된 공동인증서(NPKI)를 모바일 앱으로 안전하게 전송합니다. API 연동으로 인증서 가져오기를 앱에 내장하거나, SDK를 사용해 인증서 관리 기능 풀세트를 연동할 수 있습니다.

작동 방식

1

모바일 앱에서 세션 생성

모바일 앱에서 인증서 가져오기 세션을 시작하고 6자리 인증 코드를 발급받습니다. 사용자가 이 코드를 PC 웹 화면에 입력합니다.
2

PC 웹에서 인증서 업로드

웹 브라우저에서 인증 코드를 입력한 뒤, PC에 설치된 공동인증서 파일을 선택하여 업로드합니다. 인증서 데이터(DER + 개인키)가 릴레이 서버로 전송됩니다.
3

모바일 앱에서 수신

대기 중이던 모바일 세션이 인증서를 수신하여 안전한 저장소에 설치합니다.

Mobile SDK

Android SDK를 사용하면 인증서 가져오기 UI와 수신 로직을 간단하게 통합할 수 있습니다.

세션 생성

// 인증서 가져오기 세션 시작 — 6자리 코드 발급
val session = ImprunSDK.createCertSession()

// session.code: "482910" — 사용자가 PC 웹에 입력할 6자리 코드
// session.certId: UUID — 내부 세션 식별자
// session.expiresAt: 10분 후 만료

인증서 수신 대기

// 세션이 업로드를 감지하면 자동으로 인증서를 수신합니다
val result = ImprunSDK.importCertificate(session.certId)

when (result) {
    is CertImportResult.Success -> {
        // 인증서가 안전한 저장소에 설치됨
        Log.d("CertRelay", "인증서 설치 완료: ${result.certId}")
    }
    is CertImportResult.Expired -> {
        // 10분 이내에 업로드되지 않음
    }
    is CertImportResult.Cancelled -> {
        // 사용자가 세션을 취소함
    }
}
SDK 연동(인증서 비밀번호 확인, 전자서명 등 추가 기능)은 별도 문의가 필요합니다. 상담 문의를 통해 안내받으실 수 있습니다.

REST API

API 키 인증이 필요한 엔드포인트와 공개 엔드포인트가 구분되어 있습니다.

세션 생성 (모바일, 인증 필요)

POST /v2/certificates/session
Authorization: Bearer {keyId}.{secret}
certId
string
세션 식별자 (UUID)
code
string
6자리 인증 코드
expiresAt
string
만료 시각 (RFC3339)

인증 코드 → certId 변환 (PC 웹, 공개)

POST /v2/certificates/resolve
Content-Type: application/json

{
  "code": "482910"
}
certId
string
세션 식별자 (UUID)

인증서 업로드 (PC 웹, 공개)

POST /v2/certificates/upload/{certId}
Content-Type: application/json

{
  "certDer": "base64-encoded-cert",
  "certKey": "base64-encoded-key"
}
필드타입설명제한
certDerstringBase64 인코딩된 인증서 (DER)최대 200KB (디코딩 후)
certKeystringBase64 인코딩된 개인키최대 200KB (디코딩 후)

세션 상태 조회 (모바일, 인증 필요)

GET /v2/certificates/session/{certId}
Authorization: Bearer {keyId}.{secret}

세션 취소 (모바일, 인증 필요)

DELETE /v2/certificates/session/{certId}
Authorization: Bearer {keyId}.{secret}

보안

  • 세션 TTL: 10분 — 만료 후 자동 삭제
  • 1회 소비: 업로드된 인증서는 1회만 수신 가능
  • 비영구 저장: 인증서 데이터는 릴레이 완료 후 서버에서 즉시 삭제
  • TLS 전송: 모든 API 호출은 HTTPS를 통해 암호화 전송
  • UUID 세션: certId는 UUID v4로 생성되어 추측 불가

요금

인증서 릴레이 API는 무료입니다. SDK 연동(인증서 관리 풀세트)은 상담 문의를 통해 별도 안내합니다.