顯示具有 NGINX 標籤的文章。 顯示所有文章
顯示具有 NGINX 標籤的文章。 顯示所有文章

2022年8月26日 星期五

UBUNTU 22.04 下 CheapSSL + NGINX + NGINX Reverse Proxy 安裝方式

安裝NGINX網站系統元件

使用SSH 安裝 Nginx 預設值服務如下。

sudo apt install nginx -y

如果想要全套件完整安裝Nginx,如下指令。

sudo apt install nginx nginx-full -y

如需 nginx-額外元件,可運行以下指令來安裝這些模組。

sudo apt install nginx-extras -y

安裝後檢查 Nginx 的服務是否安裝正確。

systemctl status nginx

CHEAPSSL 網站申請憑證  (僅擷取重點)

https://cheapsslsecurity.com/

 https://cheapsslsecurity.com/ssltools/csr-generator.php


可直接產生指令,複製到主機執行後,將產生CSR及KEY。

再將主機產生的CSR貼到CHEAPSSL網站申請後續動作!

連結https://cheapsslsecurity.com/client/reissueorder.html?orderdetailid=326598 

貼上主機產生的CSR資料並選擇APACHE+MOD SSL。

在主機設定相關憑證及NGINX設定值

在/etc/nginx/ssl 目錄下產生相關CSR及KEY。

再去網站申請登入並登入CSR資料等待產生相關憑證CRT。

當網站產生CRT憑證後將資料放入在/etc/nginx/ssl/並執行合併憑證動作。

cat your_domain.crt your_domain.ca-bundle >> ssl-bundle.crt 

主機憑證打開如有紅字表示憑證CRT跟KEY不合,請再檢查!


在以下目錄建置 

NGINX Reverse Proxy 

 設定檔
/etc/nginx/conf.d/自己命名

內容如下:
server {
    listen 443;
    ssl on;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
    server_name MyDomainName.AWEN.com;
    ssl_certificate /etc/nginx/ssl/MY-ssl-bundle.crt;
    ssl_certificate_key /etc/nginx/ssl/MY.key;
      location / {
      proxy_set_header        Host $host;
      proxy_set_header        X-Real-IP $remote_addr;
      proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header        X-Forwarded-Proto $scheme;
      proxy_pass              http://轉址IP目的;
      proxy_read_timeout      90;
}


測試完成後可至以下網站測試SSL安全性
https://www.ssllabs.com/ssltest/



2020年5月15日 星期五

APACHE&NGINX SSL 關閉RC4 、SSL v3、TLSv1.0及更新Diffie-Hellman 參數

至主機以下位置修改
/etc/apache2/mods-available/ ssl.conf
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
RC4部份

原先RC4是
SSLCipherSuite HIGH:MEDIUM:!ADH:!MD5

更換為以下設定值

SSLHonorCipherOrder on
SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
SSL通訊埠部份

至於原先是
SSLProtocol -all -SSLv3 -TLSv1

更換為
SSLProtocol -all +TLSv1.2  即可完成!

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Nginx 以下SSL DH相關問題

weak Diffie-Hellman (DH) key exchange parameters


https://snippetinfo.net/mobile/media/1604

https://raymii.org/s/tutorials/Strong_SSL_Security_On_nginx.html

建立 Diffie-Hellman 參數
主要解決 Diffie-Hellman 公開金鑰不足,要產生一個檔案加入設定
# 產生 DH parameters
openssl dhparam -out /etc/ssl/certsdhparam.pem 4096
然後在 nginx.conf 的 SSL 設定加上
ssl_dhparam /etc/ssl/certs/certsdhparam.pem;
這樣就可以完成!

說明-編輯設定檔

找到SSLProtocol、SSLCipherSuite、SSLHonorCipherOrder三個設定值

SSLProtocol

設定SSL協定。可以用『+、-』分別表示『允許、拒絕』某些特定的協定。(Apache: SSLProtocol Directive)

SSLCipherSuite

用來決定SSL在交換key演算法、認證演算法、加密演算法、MAC Digest演算法、、(Apache: SSLCipherSuite Directive)

SSLHonorCipherOrder

加密套件偏好順序,這邊設定成on,可以使用戶端使用伺服器端給予的加密套件偏好。(Apache: SSLHonorCipherOrder)






2020年5月8日 星期五

CHEAPSSL NGINX 憑證綁定方式

在NGINX下

如果在一個捆綁文件中收到了中間證書,或者從您的SSLs.com帳戶下載了證書文件,則該方法
運行以下命令
Run this command:
cat your_domain.crt your_domain.ca-bundle >> ssl-bundle.crt

參考網誌文:

https://www.ssls.com/knowledgebase/how-to-install-an-ssl-certificate-on-a-nginx-server/


2017年8月12日 星期六

Nginx 取消版本資訊

取消版本資訊

編輯
Nginx.conf

啟動以下內容設定即可!

http {
...其它配置
server_tokens off;
}

設定完重啟即可!
 nginx -s reload


install nginx-extras

http {
    more_set_headers "Server: Nginx";
    server_tokens off; 
}
Restart nginx

sudo service nginx restart
----------------------------------------------------
/etc/nginx/fastcgi.conf,對下面這行
fastcgi_param  SERVER_SOFTWARE    nginx/$nginx_version;

可以拿掉$nginx_version,或者直接註解掉這一行!




2017年8月3日 星期四

關閉 Ubuntu Log 和 Nginx Server 紀錄

Ubuntu

停止rsyslog 紀錄


對於15.10及更高版本,手動關閉紀錄如下:
sudo systemctl stop rsyslog.service

以下這指令會停止當前執行的rsyslog,以確保rsyslog在下次重開機時不會再啟動,請使用以下指令:
sudo systemctl disable rsyslog.service

Nginx

server {
    listen       80;
    server_name  _;
    #access_log  /var/log/nginx/access.log  main;
  ...

server {
    listen       80;
    server_name  example.com
    access_log  off;
    error_log off;


重啟服務

/etc/init.d/nginx restart

2017年3月7日 星期二

NGINX 反向代理設定

編輯NGINX網站設定檔 
vim /etc/nginx/sites-available/default
將設定加入最後面


location / {

      proxy_set_header        Host $host;
      proxy_set_header        X-Real-IP $remote_addr;
      proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header        X-Forwarded-Proto $scheme;

      # Fix the “It appears that your reverse proxy set up is broken" error.
      proxy_pass          http://Domain_or_IP;
      proxy_read_timeout  90;

      proxy_redirect      http://Domain_or_IP  https://Domain_or_IP;
    }

最後重新啟動 nginx 服務:
sudo service nginx restart

NGINX SSL設定

安裝NGINX

sudo apt-get update
sudo apt-get install nginx

版本查詢
nginx -v

產生私鑰目錄
cd /etc/nginx/ssl

產生私鑰
openssl req -new -newkey rsa:2048 -nodes -keyout example_com.key -out example_com.csr

example_com.key         所產生的金鑰CODOMO將會連線驗證ngxinx SSL。
example_com.csr          CSR文件。(貼於CODOMO才能產生網頁驗證檔如下圖)









下載憑證放置於/etc/nginx/ssl
憑證內容
根CA證書 - AddTrustExternalCARoot.crt
中級CA證書 - COMODORSAAddTrustCA.crt
中級CA證書 - COMODORSADomainValidationSecureServerCA.crt

PositiveSSL證書 - www_example_com.crt(自己建立的子網域名稱)
合併憑證檔
1.將上述crt文件合併成一個ssl-bundle.crt(順序很重要):
  1. cat www_example_com.crt COMODORSADomainValidationSecureServerCA.crt COMODORSAAddTrustCA.crt AddTrustExternalCARoot.crt> ssl-bundle.crt
2.將ssl-bundle.crt放置在/etc/nginx/ssl的位置
編輯NGINX網站設定檔 
vim /etc/nginx/sites-available/default
增加以下名稱內容
        listen 443 ssl default_server;
        listen [::]:443 ssl default_server;
        ssl_certificate_key /etc/nginx/ssl/example_com.key;
        ssl_certificate /etc/nginx/ssl/ssl-bundle.crt;

最後重新啟動 nginx 服務:
sudo service nginx restart

這樣即可完成憑證設定!