iPhone Simulator에 자체 서명 인증서를 추가하시겠습니까?
API의 끝점에 자체 서명된 인증서가 있습니다.시뮬레이터를 사용하여 몇 가지를 테스트하려고 하지만 "신뢰할 수 없는 서버 인증서"가 발급됩니다.
시뮬레이터에서 사파리를 사용하여 .crt 파일을 다운로드하려고 했지만 작동하지 않는 것 같습니다.
iPhone Simulator의 키 체인은 어디에서 얻었습니까?응용 프로그램이 작동하도록 신뢰할 수 있는 인증서를 추가하려면 어떻게 해야 합니까?
저는 아이폰 프로비저닝 도구를 사용하여 CA를 만든 다음 CA 인증서를 추가하여 작동하게 되었습니다.그런 다음 API 서버에서 CA 인증서로 서명된 인증서를 얻을 수 있었고 NS 연결이 작동했습니다.어떤 이유로 자기 서명 인증서를 사용하여 작동할 수 없었습니다.프로비저닝 소프트웨어를 사용하여 다시 시도해야 합니다.
제 진짜 질문은 시뮬레이터에서 어떻게 작동시키느냐는 것입니다.저는 시뮬레이터가 실제 컴퓨터의 키체인을 사용한다고 생각합니다.
실행 중인 시뮬레이터 창에 .cer 파일을 드래그 앤 드롭하기만 하면 됩니다.Safari가 깜박이고 인증서(또는 인증 기관)에 대한 가져오기 대화 상자가 표시됩니다.
iOS 7 Simulator에서 일하는 것 (그리고 iOS 6에서도 작동했다고 생각합니다).
Simulator에서 인증서 끌어서 놓기가 작동하지 않는 사용자를 위해 최근에 추가 단계를 추가하는 변경 사항이 변경되었습니다.
시뮬레이터는 루트 CA를 신뢰하도록 명시적으로 지시되어야 합니다.다음으로 이동하여 이 작업을 수행합니다.
iOS 설정 > 일반 > 정보 > 인증서 신뢰 설정 > 특정 인증서에 대한 "루트 인증서 전체 신뢰 사용"
여기에서 전체 답변을 확인하십시오.
저는 몇 달 동안 같은 문제를 겪었고 오늘 드디어 다음과 같은 문제를 해결했습니다.
ADV 트러스트 스토어
github의 ADVTrustStore라는 프로젝트를 사용하려고 합니다.그것은 멋진 마술을 부리기도 하지만 시뮬레이터의 루트 신뢰 저장소에 인증서를 올바르게 설치할 것입니다.
사용자 정의 인증서 설치 단계
# Clone the repo
git clone https://github.com/ADVTOOLS/ADVTrustStore.git
# Enter the repo directory
cd ADVTrustStore/
# Copy your .crt file
cp somewhere/something.crt my.crt
# conver to a .pem file
openssl x509 -in my.crt -out my.pem -outform PEM
# Install the pem in the simulators
./iosCertTrustManager.py -a my.pem
이 프로세스를 사용하여 회사 방화벽 뒤에서 SSL이 자체 서명된 인증서와 함께 사임하는 동안 Google StreetView 이미지가 올바르게 렌더링되도록 할 수 있었습니다.
배경
Charles Proxy를 사용하던 중 Simulator에 인증서가 올바르게 설치되어 있음을 알 수 있었지만 Settings - Profiles 섹션에 인증서가 나타나지 않았습니다.검색을 좀 한 후에 이 도구를 발견했습니다.아마도 몇 가지 다른 툴이 있을 것입니다. 하지만 저의 경우 드래그 앤 드롭이 모든 경우에 제대로 작동하지 않았습니다.사파리는 괜찮지만 제 어플은 아닙니다.
OS X 카탈리나를 사용하는 사람은 https://forums.developer.apple.com/thread/124056 에서 확인하시기 바랍니다.
카탈리나는 현재 데스크톱, 문서 및 다운로드 폴더에 대한 액세스를 차단하고 있습니다.나는 공유 폴더로 인증서 파일을 이동하고 거기서 시뮬레이터로 파일을 드래그 앤 드롭했습니다.
찰스가 직접 서명한 인증서를 시뮬레이터의 키체인에 설치하는 데 사용하는 셸 스크립트를 살펴 보십시오.http://www.charlesproxy.com/documentation/faqs/ssl-connections-from-within-iphone-applications/
참고 항목:
Safari에서 해야 할 수 .TrustStore.sqlite3
시뮬레이터 안으로.
드래그 앤 드롭은 예전에 작동했지만 XCode 12에서는 작동하지 않았습니다.Simulator에서 Safari 브라우저를 열고 .crt 인증서 파일의 파일 URL을 입력하는 것이 제게 도움이 되었습니다.전.
file:///Users/[folder_path]/[certificate.crt]
그런 다음 Simulator Settings로 이동하여 General > Profiles 섹션으로 이동하여 인증서를 설치해야 합니다.
IOS14의 경우 끌면 다음으로 이동해야 합니다.
General -> Profile -> select you profile -> install
다음과 같은 경우:
General -> About -> Certificate Trust Settings -> "Enable Full Trust for Root Certificate" for your particular certificate
참고 항목: https://developer.apple.com/library/archive/qa/qa1948/_index.html
iPhone Backup Extractor를 사용하여 iPhone의 파일을 복사했습니다.TrustStore.sqlite3
안으로~/Library/Application Support/iPhone Simulator/6.0/Library/Keychains
기존 파일을 덮어씁니다.다음 sqlite로 한 행만 삽입하려고 했지만 작동하지 않았습니다.
sqlite3 ~/backup/iOS\ Files/TrustStore.sqlite3
sqlite3>.mode insert
sqlite3>.output working.sql
sqlite3>select * from tsettings;
sqlite3>.quit
지금이다,working.sql
에는 t 설정 테이블의 전체 내용이 있습니다(나의 경우 1행).
sqlite3 ~/Library/Application\ Support/iPhone\ Simulator/6.0/Library/Keychains/TrustStore.sqlite3
sqlite3>INSERT INTO tsettings VALUES(X'...
sqlite3>.quit
다시 말하지만, 위의 sqlite 명령은 나에게 효과가 없었지만, 다른 사람에게는 좋은 시작점이 될 수 있습니다. 체복사 TrustStore.sqlite3
백업에서 시뮬레이터까지 잘 작동했습니다.
다음을 살펴보십시오.iostrust
루비 보석: http://github.com/yageek/iostrust
시작할 때 "루트 인증서에 대해 전체 신뢰 사용"을 표시할 수 없습니다.nginx에 대해 생성한 인증서를 openssl로 사용하고 있었습니다.
Keychain Access에서 개발 인증서를 내보내고 시뮬레이터에서 Safari와 함께 다운로드하는 것이 효과적이었습니다.그런 다음 "루트 인증서에 대해 전체 신뢰 사용"이 나타나 응용프로그램을 작동시킬 수 있었습니다.
또한 위의 사람들이 말한 것처럼, 시뮬레이터에 인증서를 끌어다 놓는 것은 더 이상 작동하지 않습니다.Safari로 인증서를 다운로드할 수 있습니다.
언급URL : https://stackoverflow.com/questions/2219707/adding-a-self-signed-certificate-to-iphone-simulator
'programing' 카테고리의 다른 글
SQL의 DATTIME 열에서 DATE를 가져오는 방법은 무엇입니까? (0) | 2023.06.24 |
---|---|
com.google.gms.common.internal.safe parcel.safe parcelable이 없습니다. (0) | 2023.06.24 |
SQL Server: 새 ID 열을 추가하고 열을 ID로 채우는 방법은 무엇입니까? (0) | 2023.06.24 |
고유한 이름을 가진 테이블 생성 (0) | 2023.06.24 |
URL 주소를 이미 알고 있는 Python을 사용하여 이미지를 로컬로 저장하는 방법은 무엇입니까? (0) | 2023.06.24 |