NSS
1.1、NSS简介
是什么 ?:Network Security Services
开发语言:C
官方主页:https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS
1.2、通过包管理器安装NSS
操作系统包管理器安装命令
macOSHomeBrewbrew install nss
GNU/LinuxLinuxBrewbrew install nss
aptsudo apt-get install -y nss
CentOSyumsudo yum install -y nss
dnfsudo dnf install -y nss
openSUSEzyppersudo zypper install -y nss
Alpine Linuxapksudo apk add nss

Arch Linux

ArcoLinux

Manjaro Linux

pacmansudo pacman -Syyu --noconfirm
sudo pacman -S    --noconfirm nss
Gentoo LinuxPortagesudo emerge nss
1.3、通过编译源码安装NSS 

step1、安装依赖

下载时cURL
解压时targzip
编译时GNU makeGCC ( gcc )   | LLVM / Clang
运行时
  • glibc ( libc.solibrt.solibdl.solibpthread.sold-linux-x86-64.so )
  • NSPR ( libnspr4.solibplds4.solibplc4.so、  )

step2、使用curl命令下载NSS源码包 (

curl -LO https://ftp.mozilla.org/pub/security/nss/releases/NSS_3_48_RTM/src/nss-3.48.tar.gz

step3、使用tar解压NSS源码包

tar vxf nss-3.48.tar.gz

step4、进入nss-3.48/nss目录

cd nss-3.48/nss

step5、查看nss-3.48/nss目录中的内容

step6、使用GNU make进行编译

make [option]... [VAR=VALUE]... [TARGET]...
VARVALUE示例说明
CCgcc |  clang指定C编译器
CFLAGS-O2 -v指定C编译器的参数
CXXg++ |  clang++指定C++编译器
CXXFLAGS-O2 -v指定C++编译器的参数
CPPcpp指定C预处理器
CPPFLAGS-I<includeDIR>指定C预处理器的参数
LDFLAGS-L<libDIR>指定C链接器的参数
LIBS-l<libName>指定C链接器要链接的库的名称
USE_640 | 1是否支持64bit
BUILD_OPT0 | 1是否进行优化
NSS_ENABLE_WERROR0 | 1是否将警告当作错误
USE_SYSTEM_ZLIB0 | 1是否使用系统中已安装的zlib
NSS_USE_SYSTEM_SQLITE0 | 1是否使用系统中已安装的SQLite
NSPR_INCLUDE_DIR/usr/local/opt/nspr/include/nspr指定NSPR头文件所在路径
NSPR_LIB_DIR/usr/local/opt/nspr/lib指定NSPR库文件所在路径

示例:

make \
    CFLAGS="-O2 -v" \
    USE_64=1 \
    BUILD_OPT=1 \
    NSPR_INCLUDE_DIR=/usr/local/opt/nspr/include/nspr \
    NSPR_LIB_DIR=/usr/local/opt/nspr/lib

step7、安装

cd ../dist

PREFIX=/usr

mkdir -p $PREFIX/{bin,lib/pkgconfig,include/nss}

install -v -m755 Linux*/lib/*.so              $PREFIX/lib
install -v -m644 Linux*/lib/{*.chk,libcrmf.a} $PREFIX/lib

cp -v -RL {public,private}/nss/*              $PREFIX/include/nss
chmod -v 644                                  $PREFIX/include/nss/*

install -v -m755 Linux*/bin/{certutil,pk12util} $PREFIX/bin

cat > $PREFIX/lib/pkgconfig/nss.pc <<EOF
prefix=${PREFIX}
exec_prefix=\${prefix}
libdir=\${exec_prefix}/lib
includedir=\${prefix}/include/nss

Name: NSS
Description: Mozilla Network Security Services
Version: 3.48
Requires: nspr >= 4.12
Libs: -L\${libdir} -lnss3 -lnssutil3 -lsmime3 -lssl3
Cflags: -I\${includedir}
EOF
1.4、NSS中包含的命令
1.5、NSS中包含的头文件
1.6、NSS中包含的库文件
  • libssl3.{a | so | dylib}
  • libnss3.{a | so | dylib}
  • libsmime3.{a | so | dylib}