**
使用C++实现TLS/https传输的服务器以及客户端, 本文为引入 openssl
**
1, 确认你的编辑器版本, 这里用的是 CLion编辑器(mingw)
2, 下载编译好的 openssl 点击下载
2-0, 也可以自己编译自己需要的源码(直接下载的跳到 3)
2-1, 下载 未编译的 openssl , 查看 官方说明
2-2, 下载 MSYS2
2-3, 打开对应的 MSYS2版本安装 make,使用“pacman -S make”安装到 MSYS2 环境中
2-4, 使用 pacman -S mingw-w64-i686-gcc 或 mingw-w64-x86_64-gcc 安装编译环境
2-5, 在下载好的源码文件夹内执行 ./Configure mingw64 或 ./Configure mingw
默认编译得到的是静态库,需要动态库,只需添加参数 shared 即可
2-6, 完成后执行 make
2-7, 执行 make install DESTDIR= 输出的目录, 执行完成后就会获得一份编译好的源码
3, 编辑项目内的CmakeList文件, 添加以下代码, 替换路径为你自己的路径
include_directories(C:\\OpenSSL-MinGW32\\include)
link_directories(C:\\OpenSSL-MinGW32\\lib)
link_libraries(libcrypto)
link_libraries(libssl)
4, 引入, 不报错则证明成功引入
#include <openssl/ssl.h>
#include <openssl/err.h>
int main(){
SSLv23_client_method();
}
5,最后记得把 /bin/libcrypto-1_1.dll 以及 libssl-1_1.dll 复制到你的项目执行处, 也可以在 CmakeList内添加代码, 自动复制, 以下代码替换路径即可
此处代码参考 https://blog.csdn.net/m0_37876242/article/details/108161404
#添加要复制到运行目录下的 dll 文件
set(openssl_dll_crypto C:\\OpenSSL-MinGW32\\bin\\libcrypto-1_1.dll)
set(openssl_dll_ssl C:\\OpenSSL-MinGW32\\bin\\libssl-1_1.dll)
add_custom_command(TARGET ${PROJECT_NAME}
POST_BUILD
COMMAND ${CMAKE_COMMAND} -E
copy_if_different
"$<$<CONFIG:Release>:${openssl_dll_crypto}>" #指定在发行的时候的文件
"$<$<CONFIG:Debug>:${openssl_dll_crypto}>" #指定在Debug的时候的文件
"${CMAKE_BINARY_DIR}/$<$<CONFIG:Release>:/>$<$<CONFIG:Debug>:/>" #指定两种不同的路径, 此处都指定为 /
)
add_custom_command(TARGET ${PROJECT_NAME}
POST_BUILD
COMMAND ${CMAKE_COMMAND} -E
copy_if_different
"$<$<CONFIG:Release>:${openssl_dll_ssl}>"
"$<$<CONFIG:Debug>:${openssl_dll_ssl}>"
"${CMAKE_BINARY_DIR}/$<$<CONFIG:Release>:/>$<$<CONFIG:Debug>:/>"
)
具体实现的代码, 会在下一篇文章里面发出
版权声明:本文为Porridge_slag原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。