Topst d3 보드에서 https 사용 관련 질문드립니다

안녕하세요,

topst D3 보드에서 https 프로토콜을 사용할 수 있는 방법이 있을까요?

현재 qt5 기반으로 개발을 하기 위해, meta-toolchain-qt5 sdk를 사용하여 크로스 컴파일 환경을 구축한 상황입니다. 지금 사용 중인 sdk에는 필요한 라이브러리(openssl 1.0)가 없는 것 같아, 레시피를 수정해 따로 받은 openssl을 포함하도록 다시 bitbake를 했으나 여전히 네트워크에서 ssl을 지원하지 않는 것 같습니다.
혹시 공식적으로 ssl을 사용할 수 있는지 궁금합니다.

  • ssl 관련 포함된 게 있는지 확인 - 없음

  • .bbappend 파일에서 직접 받은 openssl 1.0 버전을 인식하도록 했는데 인식하지 못 함

  • 새로 받은 sdk에도 libQt5Network.so에 ssl 지원이 없음

안녕하세요.

  1. openssl

현재 D3-G에서 사용하고 있는 Yocto는 Kirkstone 4.0.17 입니다.

poky/meta/recipes-connectivity/openssl에 보시면 openssl_3.0.13.bb 파일을 보실 수 있습니다.

즉, 현재 빌드 시스템에서는 Openssl 3 버전을 지원하고 있습니다.

populate_sdk 를 통해 뽑혀진 바이너리들을 확인해 보셔도, libssl.so와 libssl.so.3 이 존재하는 것을 보실 수 있습니다.

이 환경에서, 이미 deprecated 된 오래된 openssl 1.x 버전을 사용하고자 하신다면, 별도로 layer를 추가하시면 되고

사용하고자 하는 패키지에 DEPENDS와 PREFERRED_PROVIDER_openssl PREFERRED_PROVIDER_libssl 을 각각 1.0 버전으로 명시하시고 사용하셔야 합니다.

(현재 github에 다음 경로에 있네요. NewMai/openssl-1.0.2: OpenSSL-1.0.2 for backup)

사용하시는 QT5 가 openssl 1.0을 사용하기 위해서는 그에 맞게 빌드가 되어 있어야 할 텐데, libQt5Network.so 와의 관련성은 잘 모르겠습니다.

다만, 사용하고 계시는 QT5가 openssl 1.0 target으로 빌드되어 있다면 libssl.so.1.0.x와 libcrypto.so.1.0.x 가 있어야 하고 앞서 말씀드린데로 openssl1.0 버전을 별도로 layer를 추가해 빌드하고 결과물들을 LD_LIBRARY_PATH (=/usr/lib/)에 넣어 두시면 될 것으로 보입니다.

  1. https 프로토콜

https 프로토콜은 범용적으로 사용되는 것이라, 가용한 패키지들을 설치하면 얼마든지 사용이 가능하십니다.

yocto에 설치된 기본 패키지인 curl 을 사용하셔도 동작하는 것을 확인하실 수 있습니다.

$ curl https://www.google.com

1번 내용과 연계해 유추해 보자면 QT5 앱에서 https 접근을 위해 libssl.1.0.x 환경이 필요하신 것으로 판단됩니다.

말씀드린대로 꼭 필요하시다면 libssl.1.0.x 의 layer를 추가해 사용하시거나, openssl 1.0 open source tar를 sdk 패키지로 별도 빌드하신다음, lib 폴더에 넣어두시고 사욯하시면 되지 싶습니다.

사실, libssl.3 환경을 사용하는 QT5를 사용하시는 것이 좋을 것으로 보입니다.

추가 질문 있으시면 댓글 달아 주세요.

고맙습니다.

===========================================

추가 ) 내부 확인 결과 D3-P 보드를 사용 중 이신가 보네요.

그렇다면, opensource community 에서 필요한 openssl 1.0.x 버전의 tar 묶음을 구하셔서, sdk 패키지로 별도로 lib 빌드를 하신 다음, 그것을 보드의 /usr/lib 폴더에 넣고 (libssl.so.1.0.x, libssl.so) 사용하시면 될 것 같습니다.

앞서 별도로 확보하신 openssl 1.0 버전이 현재 사용하고 있는 QT5 빌드와 맞는 버전인지 확인도 필요합니다.

사용하신 1.0.2.u 버전의 로그는 recipe의 preferred version을 확인하지 못하는 문제로, bb 파일의 설정을 다시 확인해 보시기 바랍니다.

1 Like