Nginx實戰基礎篇四通過https方式訪問web伺服器
眾所周知,我們在網際網路上衝浪,一般都是使用的http協議(超文字傳輸協議),預設情況下資料是明文傳送的,這些資料在傳輸過程中都可能會被捕獲和竊聽,因此是不安全的。https可以說是http協議的安全版,就是為了滿足對安全性要求比較高的使用者而設計的。如果您的郵件中有敏感資料,不希望被人竊聽;如果您不希望被釣魚網站盜用帳號資訊,如果您希望您在使用郵箱的過程中更安全,那麼我們推薦您使用https安全連線。
現在是我們要做一個網站 www2.rsyslor.org 要求通過https://www2.rsyslog.org進行訪問.
www2.rsyslog.org 192.168.100.107
DNS 192.168.100.102
實驗步驟
第一步、首先生成一對證書。
你需要使用到openssl命令,所以請確認系統已經安裝過此包
RHEL6中在/etc/pki/tls/certs 目錄有個指令碼可以幫助我們簡化證書生成的過程,所以
我們首先切換到此目錄
- [root@rhel6u3-7 ~]# cd /etc/pki/tls/certs/
- [root@rhel6u3-7 certs]# make server.key //生成私鑰
- umask 77 ;
- /usr/bin/openssl genrsa -aes128 2048 > server.key
- Generating RSA private key, 2048 bit long modulus
- ……….+++
- ……………………………….+++
- e is 65537 (0x10001)
- Enter pass phrase:
- Verifying – Enter pass phrase:
- [root@rhel6u3-7 certs]# openssl rsa -in server.key -out server.key //除去密碼以便詢問時不需要密碼
- Enter pass phrase for server.key:
- writing RSA key
- [root@rhel6u3-7 certs]# make server.csr //生成證書頒發機構,用於頒發公鑰
- umask 77 ;
- /usr/bin/openssl req -utf8 -new -key server.key -out server.csr
- You are about to be asked to enter information that will be incorporated
- into your certificate request.
- What you are about to enter is what is called a Distinguished Name or a DN.
- There are quite a few fields but you can leave some blank
- For some fields there will be a default value,
- If you enter `.`, the field will be left blank.
- —–
- Country Name (2 letter code) [XX]:cn
- State or Province Name (full name) []:sh
- Locality Name (eg, city) [Default City]:sh
- Organization Name (eg, company) [Default Company Ltd]:rsyslog
- Organizational Unit Name (eg, section) []:rsyslog
- Common Name (eg, your name or your server`s hostname) []:xiaonuo
- Email Address []:unix.root@hotmail.com
- Please enter the following `extra` attributes
- to be sent with your certificate request
- A challenge password []:123.com
- An optional company name []:it
- [root@rhel6u3-7 certs]# openssl x509 -in server.csr -req -signkey server.key -days 365 -out server.crt //頒發公鑰,不過由於我們並不是去CA證書中心申請的公鑰,所以在使用的時候,客戶端瀏覽器會跳出未受信任的警告。如果你在生產環境下,請去CA申請。
- Signature ok
- subject=/C=cn/ST=sh/L=sh/O=rsyslog/OU=rsyslog/CN=xiaonuo/emailAddress=unix.root@hotmail.com
- Getting Private key
- [root@rhel6u3-7 certs]#
第二步、編輯nginx主配置檔案,新增ssl模組引數
- [root@rhel6u3-7 certs]# vim /usr/local/nginx/conf/nginx.conf
- include /usr/local/nginx/server/www2.rsyslog.org; //將虛擬主機單獨設定,然後用include包含到主配置檔案中,簡化主配置檔案的配置
- [root@rhel6u3-7 certs]# vim /usr/local/nginx/server/www2.rsyslog.org //注意以下配置可以在主配置檔案中複製ssl模組資訊
- server {
- listen 443; 監聽埠為443
- server_name www2.rsyslog.org;
- ssl on; //開啟ssl
- ssl_certificate /etc/pki/tls/certs/server.crt; //證書位置
- ssl_certificate_key /etc/pki/tls/certs/server.key; //私鑰位置
- ssl_session_timeout 5m;
- ssl_protocols SSLv2 SSLv3 TLSv1; //指定密碼為openssl支援的格式
- ssl_ciphers HIGH:!aNULL:!MD5; //密碼加密方式
- ssl_prefer_server_ciphers on; //依賴SSLv3和TLSv1協議的伺服器密碼將優先於客戶端密碼
- location / {
- root sites/www2; //www2.rsyslog.org根目錄的相對位置
- index index.html index.htm;
- }
- }
第三步、建立網站的目錄、主頁、許可權。
- [root@rhel6u3-7 ~]# cd /usr/local/nginx/sites/
- [root@rhel6u3-7 sites]# mkdir www2 //建立網站根目錄
- [root@rhel6u3-7 sites]# echo This is https://www2.rsyslog.org >www2/index.html //寫個主測試頁面
- [root@rhel6u3-7 server]# chown nginx. /usr/local/nginx/server/ -R //設定配置檔案的屬主和屬組為nginx
- [root@rhel6u3-7 server]# chmod 600 /usr/local/nginx/server/ -R //設定配置檔案的許可權為600
- [root@rhel6u3-7 server]# chown nginx. /usr/local/nginx/sites/www2 –R //設定網站根目錄的屬主和屬組為nginx
- [root@rhel6u3-7 server]# chmod 755 /usr/local/nginx/sites/www2 –R //設定網站根目錄許可權為755,其他人可以讀取網站資訊。
第四步、在DNS區域中新增主機A記錄,有關DNS配置請參看http://dreamfire.blog.51cto.com/418026/1091943
- www2 A 192.168.100.107
第五步、啟動nginx伺服器。
- [root@rhel6u3-7 certs]# /etc/rc.d/init.d/nginx reload //平滑重啟nginx保證網站不被中斷
- nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
- nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
- Reloading nginx: [ OK ]
第六步、測試網站是否能夠通過https訪問
將PC機網路卡的DNS更改為192.168.100.102
在IE瀏覽器中輸入https://www2.rsyslog.org 進行測試。提示安全證書不受信任,是因為證書是本機模擬的。點選“仍然繼續”即可。
本文轉自凌激冰51CTO部落格,原文連結:http://blog.51cto.com/dreamfire/1141302,如需轉載請自行聯絡原作者
相關文章
- Nginx入門到實戰(1)基礎篇Nginx
- kubernetes使用traefik的https方式訪問web應用HTTPWeb
- nginx配置ssl實現https訪問 小白文NginxHTTP
- nginx基礎篇之虛擬主機實戰Nginx
- nginx配置https協議訪問NginxHTTP協議
- nginx 專案配置 https 訪問NginxHTTP
- Nginx配置VUE專案Https訪問NginxVueHTTP
- 如何用nginx配置https加密訪問?NginxHTTP加密
- web方式訪問sshWeb
- Nginx透過https方式反向代理的簡單實現NginxHTTP
- kubernetes實戰篇之通過api-server訪問dashboardAPIServer
- python基礎篇實戰Python
- Java通過SSLEngine與NIO實現HTTPS訪問JavaHTTP
- Swift iOS : 訪問 https 伺服器SwiftiOSHTTP伺服器
- Nginx-基礎篇Nginx
- Linux上Nginx中開啟SSL模組,實現Https訪問LinuxNginxHTTP
- 訪問web伺服器--網路實驗Web伺服器
- Nginx 實戰-04-nginx 不同的地址訪問不同的服務Nginx
- Flutter實戰之手勢基礎篇Flutter
- Nginx基礎篇--Linux下操作NginxLinux
- svn透過https協議訪問的搭建過程HTTP協議
- Git 沙盒模擬實戰(基礎篇)Git
- 核客任務實戰-WEB伺服器攻防篇教程Web伺服器
- 大神實戰Web前端最新版培訓視訊教程 專案實戰+基礎入門 Web前端課程 專案篇Web前端
- Web基礎_0x00_Web工作方式Web
- Nginx 實戰-02-nginx proxy_pass 服務代理訪問 使用筆記 ubuntu nodejsNginx筆記UbuntuNodeJS
- kubernetes實戰篇之Dashboard的訪問許可權限制訪問許可權
- 急速 debug 實戰一(瀏覽器-基礎篇)瀏覽器
- nginx配置web訪問以及檢視目錄檔案NginxWeb
- 外網如何透過https訪問自己的服務HTTP
- nginx開啟HSTS讓瀏覽器強制跳轉HTTPS訪問Nginx瀏覽器HTTP
- NGINX 入門到企業級應用實踐-基礎篇Nginx
- Holer實現外網訪問本地NginxNginx
- nginx+lua(OpenResty),實現訪問限制NginxREST
- nginx配置https詳細過程NginxHTTP
- Nginx設定訪問伺服器某個目錄Nginx伺服器
- Harbor設定https訪問HTTP
- 【SpringBoot實戰】資料訪問Spring Boot
- 內網IP地址實現HTTPS加密訪問教程內網HTTP加密