banner
李大仁博客

李大仁博客

天地虽大,但有一念向善,心存良知,虽凡夫俗子,皆可为圣贤。

Nginx替換OpenSSL為LibreSSL

先科普 LibreSSL 是 OpenSSL 加密軟體庫的一個分支,為一個安全套接層(SSL)和傳輸層安全(TLS)協議的開源實現。在 OpenSSL 爆出心臟出血安全漏洞之後,一些 OpenBSD 開發者於 2014 年 4 月創立了 LibreSSL,目標是重構 OpenSSL 的代碼,以提供一個更安全的替代品。LibreSSL 復刻自 OpenSSL 庫的 1.0.1g 分支,它將遵循其他 OpenBSD 項目所使用的安全指導原則。

簡單總結一下 LibreSSL 的優缺點 優點:兼容 OpenSSL,代碼簡單,分支清晰,便於安裝、使用和維護 缺點:不支持舊安全算法,部分加密算法效率不高。

安裝編譯環境

#安裝編譯環境
yum install -y gcc gcc-c++ pcre-devel openssl openssl-devel

創建工作目錄,統一使用絕對路徑

#創建工作目錄,統一使用絕對路徑
mkdir /work
cd /work

下載 LibreSSL 源代碼

cd /work
wget http://ftp.openbsd.org/pub/OpenBSD/LibreSSL/libressl-2.4.2.tar.gz
tar xvzf libressl-2.4.2.tar.gz

下載 nginx 源代碼

cd /work
wget http://nginx.org/download/nginx-1.10.1.tar.gz
tar -xzvf nginx-1.10.1.tar.gz
cd nginx-1.10.1

配置編譯選項,將 openssl 替換為 libressl “--with-openssl=/work/libressl-2.4.2”

./configure --with-openssl=/work/libressl-2.4.2/ \
--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-http_ssl_module \
--with-http_realip_module \
--with-http_addition_module \
--with-http_sub_module \
--with-http_dav_module \
--with-http_flv_module \
--with-http_mp4_module \
--with-http_gunzip_module \
--with-http_gzip_static_module \
--with-http_random_index_module \
--with-http_secure_link_module \
--with-http_stub_status_module \
--with-http_auth_request_module \
--with-http_slice_module \
--with-mail \
--with-mail_ssl_module \
--with-file-aio \
--with-ipv6 \
--with-http_v2_module

編譯和安裝 Nginx + Libressl

#編譯和安裝
make;make install
#創建鏈接
ln -s /usr/local/nginx/sbin/nginx /usr/sbin/nginx
ln -s /usr/local/nginx/conf /etc/nginx

測試編譯和安裝 Nginx + Libressl 結果

#測試
nginx -V

輸出結果

nginx version: nginx/1.10.1 (Ubuntu)
built by gcc 4.9.2 20150212 (Red Hat 4.9.2-6)
built with LibreSSL 2.4.2
TLS SNI support enabled

完整的編譯和安裝 Nginx + Libressl 腳本

#安裝編譯環境
yum install -y gcc gcc-c++ pcre-devel openssl openssl-devel
#創建工作目錄,統一使用絕對路徑
mkdir /work;cd /work

#下載 LibreSSL 源代碼
wget http://ftp.openbsd.org/pub/OpenBSD/LibreSSL/libressl-2.4.2.tar.gz
tar xvzf libressl-2.4.2.tar.gz

#下載 nginx 源代碼
cd /work
wget http://nginx.org/download/nginx-1.10.1.tar.gz
tar -xzvf nginx-1.10.1.tar.gz
cd nginx-1.10.1

#配置編譯選項,
./configure --with-openssl=/work/libressl-2.4.2/ \
--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-http_ssl_module \
--with-http_realip_module \
--with-http_addition_module \
--with-http_sub_module \
--with-http_dav_module \
--with-http_flv_module \
--with-http_mp4_module \
--with-http_gunzip_module \
--with-http_gzip_static_module \
--with-http_random_index_module \
--with-http_secure_link_module \
--with-http_stub_status_module \
--with-http_auth_request_module \
--with-http_slice_module \
--with-mail \
--with-mail_ssl_module \
--with-file-aio \
--with-ipv6 \
--with-http_v2_module

#編譯和安裝
make;make install
#創建鏈接
ln -s /usr/local/nginx/sbin/nginx /usr/sbin/nginx
ln -s /usr/local/nginx/conf /etc/nginx

#測試
nginx -V

參考 http://www.oschina.net/translate/nginx-libressl-first-test?cmp https://community.centminmod.com/threads/libressl-2-4-2-released.8195/

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。