首頁 > 運維 > Nginx > 主體

nginx如何設定ssl

WBOY
發布: 2023-05-12 17:58:24
轉載
6683 人瀏覽過

單向SSL設定實例:

server{
    listen 443 ssl;
    server_name www.123.com;
    root /data/wwwroot/www.123.com/ ;
    index index.html ;
    ssl_certificate server.crt;
    ssl_certificate_key server.key;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers ALL:!DH:!EXPORT:!RC4:+HIGH:+MEDIUM:!eNULL;
    ssl_prefer_server_ciphers on;
    location / {
    }
}
登入後複製

設定說明:

1. 443端口为ssl监听端口。
2. ssl on表示打开ssl支持。
3. ssl_certificate指定crt文件所在路径,如果写相对路径,必须把该文件和nginx.conf文件放到一个目录下。
4. ssl_certificate_key指定key文件所在路径。
5. ssl_protocols指定SSL协议。
6. ssl_ciphers配置ssl加密算法,多个算法用:分隔,ALL表示全部算法,!表示不启用该算法,+表示将该算法排到最后面去。
7. ssl_prefer_server_ciphers 如果不指定默认为off,当为on时,在使用SSLv3和TLS协议时,服务器加密算法将优于客户端加密算法。
登入後複製

注意:

nginx在原始碼安裝的時候,預設沒有開啟ssl模組,需要重新編譯安裝,安裝指令如下:

./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
登入後複製
make && make install
登入後複製

然後重啟nginx

雙線SSL設定範例

server{
    listen 443 ssl;
    server_name www.123.com;
    root /data/wwwroot/www.123.com/ ;
    index index.html ;
    ssl_certificate server.crt;
    ssl_certificate_key server.key;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers ALL:!DH:!EXPORT:!RC4:+HIGH:+MEDIUM:!eNULL;
    ssl_prefer_server_ciphers on;
    ssl_client_certificate ca.crt; //这里的ca.crt是根证书公钥文件    ssl_verify_client on;
    location / {
    }
}
登入後複製

說明:

就是比單向多了加粗的倆行,但是配置了雙向後,伺服器還要對客戶端的憑證進行認證,一般情況下,我們單向SSL使用較為普遍。

註:

因為我們的證書是為自建CA簽發的證書,瀏覽器並不信任該證書,所以在訪問的時候會提示「證書不受信任」。

這種情況,只需要把CA的根憑證匯入到瀏覽器中 「受信任的根憑證授權單位」 中就不會再提示 「憑證不受信任」。

匯出為windows可用的憑證方式如下:

[root@localhost root_ca]# openssl pkcs12 -export -inkey private/ca.key -in
登入後複製

匯出的憑證複製到windows上,雙擊安裝,按照嚮導匯入 「受信任的根憑證授權單位」 ,即可。

以上是nginx如何設定ssl的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:yisu.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板