研发反映一个问题,上传文件时失败,日志内错误信息如下:
ERR: cURL error 77: Unable to initialize NSS: -8023 (SEC_ERROR_PKCS11_DEVICE_ERROR)
...
这个功能使用了腾讯云的点播服务。因此立即联系了腾讯云客服。
搞了很久问题依旧。
反复测试,发现上传视频文件,错误出现在获取返回值的时候。
报错后,日志内就会出现上面的记录。
根据日志内容,出现了NSS。我们预设使用的应该是OpenSSL才对。
使用phpinfo函数检查:
果然SSL Version是NSS。
在服务器上执行curl -V检查,也证实curl使用的事NSS。
解决问题思路基本如下:
找一个相同版本的curl源码,编译并设定使用openssl。
curl -V命令显示,当前使用的版本是7.87.0.
执行如下命令:
CURL_VERSION=7.87.0
wget https://curl.haxx.se/download/curl-${CURL_VERSION}.tar.gz
tar xfz curl-7.87.0.tar.gz
cd curl-7.87.0/