LibreSSL 由 OpenBSD 在 HeartBleed (心脏出血)事件后从 OpenSSL 中分离出来的分支,旨在提供一个更安全的替代品。
OpenBSD 是一个以安全著称的操作系统,LibreSSL 遵循其他 OpenBSD 项目的安全指导原则。
前言
LibreSSL 与 OpenSSL 都是和传输层安全(TLS,Transport Layer Security)协议的开源实现,如需了解 TLS 可参见其维基百科词条。
安全性
关于 LibreSSL 与 OpenSSL 的安全性对比,引用 FreeBSD 的百科。
LibreSSL (and OpenSSL) Security Vulnerabilities
Advisories prior to the initial release of LibreSSL (portable) are not included.
Severity | LibreSSL | OpenSSL |
---|---|---|
Critical+ | ||
High | 0 | 5 |
Medium* | 16 | 31 |
Low | 7 | 12 |
Total | 19 | 36 |
* NVD Medium + OpenSSL Moderate
+ OpenSSL added Critical level in revised severity rating 2015-09-28
从数量上来看 LibreSSL 比 OpenSSL 确实安全,但是没有绝对的安全,因此选择请根据情况进行选择,并且部分软件无法使用 LibreSSL 编译使用。
部分 UNIX/Linux 发行版已经将系统内 OpenSSL 替换为 LibreSSL 。
构建 LibreSSL
依赖
apt -y install build-essential
下载
定位至工作目录,下载源码包。
cd /usr/local/src
清理掉多余源码,保持工作区整洁。
wget https://ftp.openbsd.org/pub/OpenBSD/LibreSSL/libressl-2.9.1.tar.gz
解压
tar xf libressl-2.9.1.tar.gz
编译
cd libressl-2.9.1 && ./configure && make
小贴士:若是不准备替换系统加密组件,仅仅替换 NGINX 中的组件,解压后无需进行编译。
构建 NGINX
下载源码
wget https://nginx.org/download/nginx-1.16.0.tar.gz
解压
tar xf nginx-1.16.0.tar.gz
编译
cd nginx-1.16.0
生成 Makefile
./configure \
--prefix=/etc/nginx \
--sbin-path=/usr/sbin/nginx \
--modules-path=/usr/lib/nginx/modules \
--conf-path=/etc/nginx/nginx.conf \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--pid-path=/var/run/nginx.pid \
--lock-path=/var/run/nginx.lock \
--http-client-body-temp-path=/var/cache/nginx/client_temp \
--http-proxy-temp-path=/var/cache/nginx/proxy_temp \
--http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp \
--http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp \
--http-scgi-temp-path=/var/cache/nginx/scgi_temp \
--user=nginx \
--group=nginx \
--with-compat \
--with-file-aio \
--with-threads \
--with-http_addition_module \
--with-http_auth_request_module \
--with-http_dav_module \
--with-http_flv_module \
--with-http_gunzip_module \
--with-http_gzip_static_module \
--with-http_mp4_module \
--with-http_random_index_module \
--with-http_realip_module \
--with-http_secure_link_module \
--with-http_slice_module \
--with-http_ssl_module \
--with-http_stub_status_module \
--with-http_sub_module \
--with-http_v2_module \
--with-http_xslt_module=dynamic \
--with-http_image_filter_module=dynamic \
--with-http_geoip_module=dynamic \
--with-http_perl_module=dynamic \
--with-mail --with-mail_ssl_module \
--with-stream \
--with-stream_realip_module \
--with-stream_ssl_module \
--with-stream_ssl_preread_module \
--with-cc-opt='-g -O2 -specs=/usr/share/dpkg/no-pie-compile.specs -fstack-protector-strong -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fPIC' \
--with-ld-opt='-specs=/usr/share/dpkg/no-pie-link.specs -Wl,-z,relro -Wl,-z,now -Wl,--as-needed -pie' \
--with-openssl=/usr/local/src/libressl/
小贴士:其他组件及可能遇到的报错不再赘述,请移至相关链接中查看。
make
执行编译即可。
安装
make install
小贴士:若当前有 NGINX 在工作,请先停止服务后再执行。
检查
安装成功后检查版本
nginx -V
即可看到
nginx version: nginx/1.16.0
built by gcc 6.3.0 20170516 (Debian 6.3.0-18+deb9u1)
built with LibreSSL 2.9.1
TLS SNI support enabled
configure arguments: --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib/nginx/modules --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx --with-compat --with-file-aio --with-threads --with-http_addition_module --with-http_auth_request_module --with-http_dav_module --with-http_flv_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_mp4_module --with-http_random_index_module --with-http_realip_module --with-http_secure_link_module --with-http_slice_module --with-http_ssl_module --with-http_stub_status_module --with-http_sub_module --with-http_v2_module --with-http_xslt_module=dynamic --with-http_image_filter_module=dynamic --with-http_geoip_module=dynamic --with-http_perl_module=dynamic --with-mail --with-mail_ssl_module --with-stream --with-stream_realip_module --with-stream_ssl_module --with-stream_ssl_preread_module --with-cc-opt='-g -O2 -specs=/usr/share/dpkg/no-pie-compile.specs -fstack-protector-strong -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fPIC' --with-ld-opt='-specs=/usr/share/dpkg/no-pie-link.specs -Wl,-z,relro -Wl,-z,now -Wl,--as-needed -pie' --with-openssl=/usr/local/src/libressl/
附录
相关链接
参考链接
本文由 柒 创作,采用 知识共享署名4.0
国际许可协议进行许可。
转载本站文章前请注明出处,文章作者保留所有权限。
最后编辑时间: 2019-05-15 11:44 AM