編譯安裝Nginx,配置使用HTTPS


環境:

  CentOS-6.9/192.168.59.133

  僅啟用iptables,selinux為disabled狀態

安裝開發環境:

  # yum groupinstall -y "Server Platform Development" "Development Tools"

  # yum install -y pcre-devel

  ```nginx的rewrite模塊和HTTP核心模塊會用到PCRE正則表達式語法```

添加nginx組合用戶

  # groupadd -r nginx

  # useradd -g nginx -r nginx

獲取nginx源碼,此次測試中沒有使用較新的版本,為nginx-1.12.2

  # wget http://nginx.org/download/nginx-1.12.2.tar.gz

  # tar -zxvf nginx-1.12.2.tar.gz 

  # cd nginx-1.12.2.tar.gz

編譯安裝nginx

  # ./configure --prefix=/usr/local/nginx

    --conf-path=/etc/nginx/nginx.conf

    --user=nginx --group=nginx

    --error-log-path=/var/log/nginx/error.log

    --http-log-path=/var/log/nginx/access.log

    --pid-path=/var/run/nginx/nginx.pid

    --lock-path=/var/lock/nginx.lock

    --with-http_ssl_module   #支持ssl模塊

    --with-http_stub_status_module

    --with-http_gzip_static_module

    --http-client-body-temp-path=/var/tmp/nginx/client

    --http-proxy-temp-path=/var/tmp/nginx/proxy

    --http-fastcgi-temp-path=/var/tmp/nginx/fastcgi

    --http-uwsgi-temp-path=/var/tmp/nginx/uwsgi

  # make && make install

創建相應的目錄

  # mkdir -pv /var/tmp/nginx/{client,proxy,fastcgi,uwsgi}

支持nginx安裝完成,先測試一下nginx服務是否能正常啟動,並提供web服務

  # /usr/local/nginx/sbin/nginx 

  # ss -tnlp

  ```此時若是看到80端口已然被監聽,則nginx正常運行```

配置使用https:

  大致步驟:生成私鑰,生成證書簽署請求,並獲得證書 

  # cd /etc/pki/CA/

  # (umask 077; openssl genrsa -out private/cakey.pem 2048)

  # openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 3655

  # touch serial index.txt

  # echo 01 > serial

  # mkdir /etc/nginx/ssl

  # cd /etc/nginx/ssl

  # (umask 077; openssl genrsa -out nginx.key 1024)

  # openssl req -new -key nginx.key -out nginx.csr

  # openssl ca -in nginx.csr -out nginx.crt -days 3655

配置:  

  # cd /etc/nginx

  # cp nginx.conf{,.bak}

  ```建議不管出於什么目的修改任何文件之前都先備份,這樣的坑不要去踩了```

  # vim nginx.conf
    server {
      listen 443 ssl;
      server_name www.lushenle.com;

      ssl_certificate /etc/nginx/ssl/nginx.crt;
      ssl_certificate_key /etc/nginx/ssl/nginx.key;

      ssl_session_cache shared:SSL:1m;
      ssl_session_timeout 5m;

      ssl_ciphers HIGH:!aNULL:!MD5;
      ssl_prefer_server_ciphers on;

      location / {
        root html;
        index index.html index.htm;
      }
    }

保存退出之后,測試配置文件是否存在錯誤,如若無誤,重載nginx服務

  # /usr/local/nginx/sbin/nginx -t 

  # /usr/local/nginx/sbin -s reload

查看443端口是否被監聽:

  # ss -tnlp

  此時可看的443端口正在被監聽,且是以nginx用戶的身份運行的進程

配置iptables

  # iptables -I INPUT -d 192.168.59.133 -p tcp -m multiport --dports 443,80 -j ACCEPT

  # iptables -I OUTPUT -s 192.168.59.133 -p tcp -m multiport --dports 443,80 -j ACCEPT

測試https服務,瀏覽器輸入https://192.168.59.133,或者其他的工具訪問

  # curl -k https://192.168.59.133


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM