在WEB 服務中,nginx經常作為web服務器接受client的請求,然后跟后端的tomcat交互。
在通信協議里面可以配置http, 如果安全要求更高也可以配置https,,對於HTTP 和https協議的異同,可以看這里https://www.cnblogs.com/sucretan2010/p/11037497.html
首先整個的配置可以分成2個部分,,1.證書的安裝 2.nginx 的nginx.conf里面的配置
1.證書
通常證書都是向專業的機構申請,付費購買的。當然也可以自己,制作一個自制的證書,當然這樣純粹是為了自己學習,作為正式的WEB 系統是不可行的。
ssl 證書,全稱Secure socket layer,,通過在客戶端瀏覽器和Web服務器之間建立一條SSL安全通道(Secure socket layer(SSL)安全協議。
通常申請好的正式機構分發的證書,會是下面的內容:
證書certificate中包括含了數字簽名和公鑰, 客戶端可以通過CA來驗證數字簽名.
公鑰/私鑰用於數據加密, 公鑰可以發布給任何人, 私鑰必須保密
1.證書文件通常以.cer, .crt結尾
2.公鑰文件通常以.pem結尾
3.私鑰文件通常以.key結尾
加密系統加載這些文件時, 並不是以后綴名的區分. 而是根據里面的內容
注意有一個 geotrust.txt 的文件
.獲取服務器證書文件
將證書簽發郵件中的包含服務器證書代碼的文本復制出來(包括“-----BEGIN CERTIFICATE-----”和“-----END CERTIFICATE-----”)粘貼到記事本等文本編輯器中。
為保障服務器證書在客戶端的兼容性,服務器證書需要安裝中級CA證書。
在服務器證書代碼文本結尾,回車換行不留空行,粘貼證書簽發郵件中的“以下是您的中級CA證書”部分里的第一段CA證書的內容(包括“-----BEGIN CERTIFICATE-----”和“-----END CERTIFICATE-----”),每串證書代碼之間均需要使用回車換行不留空行,修改文件擴展名,保存包含兩段證書代碼的文本文件為server.pem文件。
2.安裝服務器證書
復制server.key、server.pem文件到Nginx安裝目錄下的conf目錄。
打開Nginx安裝目錄下conf目錄中的nginx.conf文件
找到
# HTTPS server
#
#server {
# listen 443;
# server_name localhost;
# ssl on;
# ssl_certificate cert.pem;
# ssl_certificate_key cert.key;
# ssl_session_timeout 5m;
# ssl_protocols SSLv2 SSLv3 TLSv1;
# ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
# ssl_prefer_server_ciphers on;
# location / {
# root html;
# index index.html index.htm;
# }
#}
將其修改為
server {
listen 443;
server_name www.yourdomain.com;
ssl on;
ssl_certificate server.pem;
ssl_certificate_key server.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
#啟用TLS1.1、TLS1.2要求OpenSSL1.0.1及以上版本,若您的OpenSSL版本低於要求,請使用 ssl_protocols TLSv1;
ssl_ciphers HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM;
ssl_prefer_server_ciphers on;
location / {
root html;
index index.html index.htm;
}
}
保存退出,並重啟Nginx。
通過https方式訪問您的站點,測試站點證書的安裝配置。