사용자 정의 crypto.Signer 구현을 사용하여 X.509 인증서를 생성할 수 없습니다.
php 편집기 Youzi는 X.509 인증서 생성에 관한 문제를 소개하기 위해 왔습니다. 때로는 사용자 정의 crypto.Signer 구현을 사용하여 인증서를 생성할 때 사용할 수 없는 문제가 발생할 수 있습니다. 이 문제로 인해 개발자는 해결 방법을 혼란스러워할 수 있습니다. 이 기사에서는 이 문제의 원인을 살펴보고 개발자가 자신의 X.509 인증서를 성공적으로 생성하는 데 도움이 되는 몇 가지 솔루션을 제공합니다.
질문 내용
hsm에 저장된 rsa 키 쌍을 기반으로 x.509 인증서를 생성하려고 합니다. 나는 이 pkcs #11 구현을 사용하여 hsm과 통신합니다.
내 암호화 개체는 후자에 저장되므로 수행하려는 작업에 개인 키(예: 서명)가 필요한 경우 "개인 키에 액세스"하려면 crypto.signer 인터페이스를 구현해야 합니다. 이것이 구현입니다.
으아아아이 구현은 작동합니다. 예를 들어 csr을 생성하려면 createcertificaterequest 함수에 csr(priv any
参数),这是我提供 rsasigner
인스턴스가 있는 위치)에 서명하기 위한 개인 키가 필요합니다.
createcertificate 함수는 다소 유사하며 매개변수 pub
是要生成的证书的公钥,priv
는 서명자의 개인 키입니다.
아래 코드에서는 자체 서명된 x.509 인증서를 생성하려고 하므로 template
和parent
매개변수는 API에 따라 동일합니다.
키 유형(rsa 또는 ec)에 관계없이 이 함수는 다음 오류를 반환합니다.
으아아아이 오류는 crypto.signer
구현이 올바르게 완료되지 않은 경우 반환됩니다.
타원 곡선의 키 쌍을 사용하여 동일한 작업을 수행하려고 crypto.signer
을 구현했지만 오류는 동일합니다.
또한 sign
함수에서 다양한 해싱 알고리즘을 시도했지만 아무 것도 변경되지 않았습니다.
CSR을 생성하는 데 사용할 수 있지만 crypto.signer
구현에서 오류가 발생한 것 같습니다.
Solution
몇 달 전에 이 문제에 대한 해결책을 찾았지만 답변을 공유할 시간은 없었지만 지금이 바로 그 때입니다.
pkcs #11을 통해 직접 서명하는 경우 여기에 참조된 digestinfo 값을 사용하여 해시 접두사를 수동으로 지정하여 해시 접두사를 관리해야 합니다. https://www.rfc-editor.org/rfc /rfc3447#page-43 .
더 정확하게는 rsassa-pkcs1-v1_5 서명의 경우 실제 서명 함수에 대한 입력은 asn.1 der 인코딩된 구조입니다. pkcs #11에는 구조를 생성하는 방법을 알고 있는 해시별 메커니즘(예: ckm_sha256_rsa_pkcs)이 있지만 모두 데이터가 해시되지 않는다고 가정합니다. 이는 암호화폐의 경우와 다릅니다. signer 인터페이스이므로 원시 서명 작업만 수행하는 일반 cka_rsa_pkcs 메커니즘을 사용해야 합니다. 이는 우리가 사용하려는 모든 해시에 대해 올바른 접두사를 제공하기만 하면 asn.1 구조를 직접 생성해야 함을 의미합니다.
crypto.signeropts 유형의 opts 매개변수를 사용하면 sign() 함수가 호출될 때 올바른 접두사가 적용된 crypto.hash 유형의 해시 함수 식별자를 검색할 수 있습니다.
으아아아그것은 매력처럼 작동합니다. 하지만 더 좋은 일이 있습니다.
ckm_rsa_pkcs 메커니즘은 rsassa-pkcs1-v1_5 유형의 서명을 제공합니다. 더 이상 새로운 제품/소프트웨어에 사용되어서는 안 되는 이 오래된 서명 체계를 스스로 조사하도록 관심 있는 독자들에게 맡깁니다.
실제로 rsassa-pss 유형 서명을 제공하는 ckm_rsa_pkcs_pss 메커니즘을 사용하는 것이 좋습니다.
이 원칙에서 출발하여 현재 제가 사용하는 구현은 다음과 같습니다.
으아아아그래서 접두사는 더 이상 필요하지 않지만, 사용할 해시 알고리즘 식별자와 서명 알고리즘 및 사용할 mgf 간의 대응이 필요합니다.
마지막으로, 사용되는 서명 알고리즘은 더 이상 x509.sha256withrsa, x509.sha384withrsa 또는 x509.sha512withrsa이 아니라 sha256withrsapss, sha38입니다. 4withrsapss 및 sha512withrsapss.
서명 축하드립니다.
위 내용은 사용자 정의 crypto.Signer 구현을 사용하여 X.509 인증서를 생성할 수 없습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











1. OKX EUYI Exchange의 웹 버전을 입력하십시오. 2. OKX EUYI Exchange 앱의 링크를 클릭하십시오. 사용자는 기존 계정에 로그인하거나 자신의 상황에 따라 새 계정을 등록하도록 선택할 수 있습니다. 실시간 시장 조건을 보거나 거래 수행 또는 자산 관리에 관계없이 OKX 웹 버전은 초보자와 재향 군인에게 적합한 간단하고 원활한 운영 경험을 제공합니다. 쉬운 경험을 보려면 지금 OKX 공식 웹 사이트를 방문하십시오

이 기사는 공식 웹 사이트에 액세스하는 것부터 등록 정보 작성, 등록 정보 작성, 확인, 사용자 계약 읽기 등의 모든 단계를 다루는 자세한 Gate.io 등록 자습서를 제공합니다.이 기사는 또한 2 차 검증을 설정하고 실제 인증을 설정하고 초보자의 디지털 자산 거래를 시작하는 등의 성공적인 등록을 성공적으로 등록한 후 보안 조치를 강조합니다.

OKX는 글로벌 디지털 자산 거래 플랫폼입니다. 주요 기능에는 1. 디지털 자산 구매 및 판매 (SPOT 거래), 2. 디지털 자산 간의 거래, 3. 시장 조건 및 데이터 제공, 4. 파생 상품과 같은 다양한 거래 제품 제공, 5. 자산 부가가치 서비스 제공, 6. 편리한 자산 관리.

이 기사는 OK Exchange의 공식 웹 버전을 사용하여 로그인하는 방법에 대해 자세히 설명합니다. 사용자는 브라우저에서 "OK Exchange 공식 웹 버전"을 검색하면 공식 웹 사이트를 입력 한 후 오른쪽 상단 코너의 로그인 버튼을 클릭하고 로그인하여 사용자 이름과 비밀번호를 입력 할 수 있습니다. 등록 된 사용자는 자산을 관리하고, 펀드 및 펀드를 쉽게 인출 할 수 있으며, 공식 웹 사이트 인터페이스를 쉽게 사용하고 스무어 서비스를 제공 할 수 있으며, 사용자가 쉽게 사용하여 사용자가 쉽게 서비스를 제공 할 수 있습니다. 당신은 무엇을 기다리고 있습니까? OK Exchange의 공식 웹 사이트를 방문하여 디지털 자산 여행을 시작하십시오!

이 기사는 Binance PC 버전에 로그인 및 등록에 대한 완전한 안내서를 제공합니다. 먼저 Binance PC 버전으로 로그하는 단계에 대해 자세히 설명했습니다. 브라우저에서 "Binance 공식 웹 사이트"를 검색하고 로그인 버튼을 클릭하고 이메일 및 비밀번호를 입력하십시오 (2FA 활성화 검증 코드를 입력 할 수 있음) 로그인 할 수 있습니다. 두 번째로 기사는 "등록"버튼을 클릭하고 이메일 주소를 클릭하고 강한 비밀번호를 설정하고 이메일 주소를 확인하십시오. 마지막으로,이 기사는 또한 계정 보안을 강조하여 사용자에게 공식 도메인 이름, 네트워크 환경에주의를 기울이고 비밀번호를 정기적으로 업데이트하여 계정 보안 및 시장 조건보기, 거래 수행 및 자산 관리와 같은 Binance PC 버전에서 제공하는 다양한 기능을 더 잘 활용하도록 상기시킵니다.

이 기사는 Binance Academy, OKX Learn, Coingecko, Cryptoslate, Coindesk, Investopedia, Coinmarketcap, Huobi University, Coinbase Learn 및 Cryptocompare를 포함하여 잘 알려진 가상 통화 관련 앱 추천 웹 사이트 10 개를 권장합니다. 이 웹 사이트는 가상 통화 시장 데이터, 가격 추세 분석 등과 같은 정보를 제공 할뿐만 아니라 기본 블록 체인 지식, 거래 전략 및 다양한 거래 플랫폼 앱의 튜토리얼 및 리뷰를 포함한 풍부한 학습 리소스를 제공하여 사용자가 더 잘 이해하고 이용할 수 있도록 도와줍니다.

세계 최고 중 하나이며 SPOT, 계약 및 Web3 지갑과 같은 모든 범주의 거래를 지원합니다. 보안이 높고 취급 수수료가 낮습니다. 규정 준수와 높은 유동성으로 유명한 오랜 역사를 가진 포괄적 인 거래 플랫폼은 다국어 서비스를 지원합니다. 업계 리더는 유동성이 강한 통화 거래, 레버리지, 옵션 등을 다루며 BNB 공제 수수료를 지원합니다.

이 기사에는 Binance, Okx, Gate.io, Kraken, Bybit, Coinbase, Kucoin, Bitget, Gemini 및 Bitstamp를 포함한 상위 10 개의 잘 알려진 Web3 Trading 플랫폼이 나와 있습니다. 이 기사는 통화 수, 거래 유형 (스팟, 선물, 옵션, NFT 등), 처리 수수료, 보안, 규정 준수, 사용자 그룹 등과 같은 각 플랫폼의 특성을 투자자가 가장 적합한 거래 플랫폼을 선택할 수 있도록 도와줍니다. 고주파 거래자, 계약 거래 애호가 또는 규정 준수 및 보안에 중점을 둔 투자자이든, 참조 정보를 찾을 수 있습니다.
