한국어
Qt
 

QNetworkAccessManager를 사용하여 https URL을 가져오면 SslHandshakeFailedError 에러와 함께 실패하는 경우가 있다.


the SSL/TLS handshake failed and the encrypted channel could not be established. The sslErrors() signal should have been emitted.” 

 

슬롯을 QNetworkReply의 error(QNetworkReply::NetworkError) 신호에 연결하여 이 오류를 잡을(catch) 수 있다. SslHandshakeFailedError 임을 알 수 있다. 이 에러에 대해 이곳에서 자세히 알 수 있다.

 

Qt 응용프로그램에서 이 SslHandshakeFailedError를 수정하려면 2단계를 수행해야 한다.

 

먼저 요청에 대해 피어 확인 모드를 QSslSocket::VerifyNone 으로 설정한다.

QSslConfiguration conf = request.sslConfiguration();
// QSslSocket은 피어로부터 인증서를 요청하지 않는다.
conf.setPeerVerifyMode(QSslSocket::VerifyNone);
request.setSslConfiguration(conf);

 

서버의 인증서를 확인하지 않아도 SSL 오류(QSslError::NoError)가 계속 발생한다. 그래서 다음 단계는 QNetworkReply의 sslErrors(QList<QSslError>) 신호를 ignoreSslErrors() 슬롯에 연결하여 오류를 무시하는 것이다.

번호 제목 글쓴이 날짜 조회 수
공지 Qt프로그래밍(QtQuick) Beginner를 위한 글 읽는 순서 운영자 2019.01.05 86171
19 QQuickImageProvider 를 이용한 Qml 에서 이미지 표시 makersweb 2015.10.18 6007
18 QPushButton 의 커스텀 이미지버튼 file makersweb 2019.11.05 6424
17 Qt애플리케이션 객체(QCoreApplication, QGuiApplication, QApplication) 에 대해서 makersweb 2019.11.11 10149
16 QScopedPointer 소개 및 사용법 makersweb 2019.11.29 1031
15 QThread 소개 및 예제 makersweb 2019.12.25 19580
14 QLabel의 텍스트 색과 배경색을 변경 makersweb 2020.02.25 6668
13 컨테이너 클래스 - QVector makersweb 2020.03.17 2864
12 재진입(Reentrancy) 및 스레드 안전성(Thread-Safety) makersweb 2020.04.19 1222
11 Qt로 데이터를 직렬화(serialization)하는 방법 makersweb 2020.08.04 2075
10 main함수 명령줄 옵션 해석 makersweb 2020.09.01 2245
9 QRandomGenerator 클래스를 사용하여 난수(random values) 생성 makersweb 2020.10.17 1581
8 QThread 및 QMutex 예제 makersweb 2021.01.12 1358
7 응용프로그램 자동실행 설정 (on Windows) makersweb 2021.05.08 567
» HTTPS URL을 연결할 때 SslHandshakeFailedError 오류 makersweb 2022.07.31 362
5 Qt 스마트 포인터 (QSharedPointer, QScopedPointer, QPointer) makersweb 2022.08.18 1149
4 하드디스크 드라이브 여유 공간 계산 file makersweb 2023.01.15 542
3 QProcess 예제 (프로그램 재시작) file makersweb 2023.01.25 944
2 Base64로 인코딩된 파일을 복원 makersweb 2023.08.06 482
1 QML의 사용자 정의 Image makersweb 2023.09.17 599