在 nginx conf 目錄下新建 ssl 目錄,將申請的 ssl證書文件拷貝到此處:
修改 nginx 配置文件使支持 https,修改如下:
server {
listen 80;
listen 443 ssl;
ssl_certificate ssl/cert-xuexiyuan.cn.crt;
ssl_certificate_key ssl/cert-xuexiyuan.cn.key;
....
新增 listen 443、ssl_certificate、ssl_certificate_key 這三行
$sudo nginx/sbin/nginx -s reload
重新加載配置報錯,缺少 http_ssl_module 模塊,錯誤信息如下:
nginx: [emerg] the "ssl" parameter requires ngx_http_ssl_module in /opt/nginx-1.12.2/conf/vhosts/xuexiyuan.cn.conf:3
nginx 添加 SSL 模塊
重新編譯 nginx 包,在之前的編譯的基礎上添加 --with-http_ssl_module 模塊來編譯,將編譯後的 nginx 文件替換掉即可。
- 查看之前的編譯信息
webadmin@xuexiyuan:~$ /opt/nginx-1.12.2/sbin/nginx -V
nginx version: nginx/1.12.2
built by gcc 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.4)
configure arguments: --prefix=/opt/nginx-1.12.2
- 到源碼包中重新編譯添加 --with-http_ssl_module
./configure --prefix=/opt/nginx-1.12.2 --with-http_ssl_module
- 執行完成後,運行命令
make
注: 這裏不要進行make install,否則就是覆蓋安裝
- 然後備份原有已安裝好的 nginx
cp /opt/nginx-1.12.2/sbin/nginx /opt/nginx-1.12.2/sbin/nginx.bak
- 然後將剛剛編譯好的 nginx 覆蓋掉原有的nginx(這個時候nginx要停止狀態)
cp ./objs/nginx /opt/nginx-1.12.2/sbin
- 然後啓動nginx,仍可以通過命令查看是否已經加入成功
webadmin@xuexiyuan:~$ /opt/nginx-1.12.2/sbin/nginx -V
nginx version: nginx/1.12.2
built by gcc 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.4)
built with OpenSSL 1.1.0g 2 Nov 2017
TLS SNI support enabled
configure arguments: --prefix=/opt/nginx-1.12.2 --with-http_ssl_module