Centos7+Nginx通過windows CA頒發及配置SSL服務

來源:互聯網
上載者:User

標籤:centos7+nginx通過windows ca頒發及配置ssl服務

Centos7+Nginx通過windows CA頒發及配置SSL服務

近期在學習Linux的相關知識,作為一個營運工程師所必備的知識點,一個web服務尤其運行在互連網上的很容易攻擊,所以為了保證安全最起碼的需要對web服務配置SSL,這樣能提高一定的安全性,所以我們今天介紹,Centos7+Nginx通過windows CA頒發及配置SSL服務,當然如果是產生環境的話,一般都會申請第三方認證,比如沃通等第三方憑證授權單位,今天我們主要使用的是內部的windows CA服務為nginx頒發認證,當然也可以使用Nginx的自我簽署憑證,但是那樣每次訪問都會有相關的警告 提醒,具體見下:

環境介紹:

Hostname:DC.IXMSOFT.COM

IP:192.168.5.10

Role:DC、DNS、CA

OS:windows Server 2016

Hostname:D-S.IXMSOFT.COM

IP:192.168.5.20

Role:Nginx Service

OS: Centos 7.1

準備作業系統後及安裝完成對應的配置:

1.hostnamectl set-hostname d-s

2.vim /etc/selinux/config--->selinux:disabled

3.添加防火牆規則:firewall-cmd –zone=public  --add-port=”80/tcp” –permenant

接下來就是安裝nginx倉庫

yum install http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

650) this.width=650;" title="clip_image001" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;padding-right:0px;" border="0" alt="clip_image001" src="http://s3.51cto.com/wyfs02/M00/8B/84/wKiom1hP-jOhxvpRAADOccggjwI404.png" height="241" />

yum install nginx

650) this.width=650;" title="clip_image001[4]" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;margin:0px;padding-right:0px;" border="0" alt="clip_image001[4]" src="http://s3.51cto.com/wyfs02/M00/8B/84/wKiom1hP-jWDFhFSAACcTKNIjok866.png" height="221" />

650) this.width=650;" title="clip_image002" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;margin:0px;padding-right:0px;" border="0" alt="clip_image002" src="http://s3.51cto.com/wyfs02/M00/8B/81/wKioL1hP-jeTRizyAADIBywzVi8979.png" height="306" />

我們同樣給nginx配置一個頁面,主要是為了區分

vim /usr/share/nginx/html/index.html<html><head><title>Welcome to Nginx!</title><style>body {35em;margin: 0 auto;font-family: Tahoma, Verdana, Arial, sans-serif;}</style></head><body bgcolor="#BE77FF"><h1>Welcome to D-S Nginx Service</h1><h2>HostName:D-S</h2><h2>IP:192.168.5.20</h2></body></html>

然後啟動nginx服務

systemctl start nginx

650) this.width=650;" title="clip_image003" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;margin:0px;padding-right:0px;" border="0" alt="clip_image003" src="http://s3.51cto.com/wyfs02/M01/8B/81/wKioL1hP-jjgZVv6AABvIfAUjs4228.png" height="297" />

接下來開始申請私密金鑰

cd /etc/pki/tlsOpenssl genrsa -out server.key 2048Server.key 是私密金鑰

650) this.width=650;" title="clip_image004" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;margin:0px;padding-right:0px;" border="0" alt="clip_image004" src="http://s3.51cto.com/wyfs02/M02/8B/81/wKioL1hP-jnzHPItAADOemqNHXg621.png" height="180" />

用私密金鑰serverkey 檔案產生認證請求檔案csr

openssl req -new -key server.key -out server.csrServer.csr 是認證請求檔案網域名稱,也稱為 Common Name,因為特殊的認證不一定是網域名稱:nginx.ixmsoft.com組織或公司名字(Organization):Example, Ixmsoft部門(Department):可以不填寫,城市(City):Beijing省份(State / Province):Beijing國家(Country):CN加密強度:2048 位,如果你的機器效能強勁,也可以選擇 4096 位如果是泛網域名稱認證,則應該填寫*.ixmsoft.com

650) this.width=650;" title="clip_image005" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;margin:0px;padding-right:0px;" border="0" alt="clip_image005" src="http://s3.51cto.com/wyfs02/M02/8B/84/wKiom1hP-jzS-QU0AAFmAc1GH5E363.png" height="266" />

650) this.width=650;" title="clip_image006" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;margin:0px;padding-right:0px;" border="0" alt="clip_image006" src="http://s3.51cto.com/wyfs02/M00/8B/84/wKiom1hP-j3AFDk3AABRYyMe4_s043.png" height="77" />

我們開啟剛才產生的csr檔案

650) this.width=650;" title="clip_image007" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;margin:0px;padding-right:0px;" border="0" alt="clip_image007" src="http://s3.51cto.com/wyfs02/M00/8B/81/wKioL1hP-j_B-X77AAIrry9qMYk001.png" height="306" />

此時,我們有了csr檔案我們通過這個檔案在內部的windows CA伺服器上申請認證

650) this.width=650;" title="clip_image008" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;margin:0px;padding-right:0px;" border="0" alt="clip_image008" src="http://s3.51cto.com/wyfs02/M01/8B/84/wKiom1hP-kCDNFodAAEtQzKUU0M690.png" height="482" />

使用base64位編碼的CMC或者RKCS提交認證申請

650) this.width=650;" title="clip_image009" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;margin:0px;padding-right:0px;" border="0" alt="clip_image009" src="http://s3.51cto.com/wyfs02/M01/8B/81/wKioL1hP-kKiqHMZAADF2LCoL9o945.png" height="484" />

然後我們將csr檔案的內容粘貼,選擇web服務憑證模板提交

650) this.width=650;" title="clip_image010" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;padding-right:0px;" border="0" alt="clip_image010" src="http://s3.51cto.com/wyfs02/M02/8B/81/wKioL1hP-kSDdWKtAAEV221XkhQ988.png" height="484" />

一定要下載basic64編碼這個類型,不然在nginx啟動的時候回報錯

650) this.width=650;" title="clip_image011" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;margin:0px;padding-right:0px;" border="0" alt="clip_image011" src="http://s3.51cto.com/wyfs02/M02/8B/84/wKiom1hP-kWyMRPZAABzujJY6lA028.png" height="417" />

下載認證完成

650) this.width=650;" title="clip_image012" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;margin:0px;padding-right:0px;" border="0" alt="clip_image012" src="http://s3.51cto.com/wyfs02/M00/8B/84/wKiom1hP-kqjd_wuAAEv_Tw05QE961.png" height="319" />

我們將該認證上傳到192.168.5.20上,nginx伺服器上

650) this.width=650;" title="clip_image013" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;padding-right:0px;" border="0" alt="clip_image013" src="http://s3.51cto.com/wyfs02/M00/8B/81/wKioL1hP-kugFS5FAAA9PA5f0Ww134.png" height="60" />

我們將認證拷貝到認證目錄下

cp certnew.cer /etc/pki/tlsls

650) this.width=650;" title="clip_image001[6]" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;margin:0px;padding-right:0px;" border="0" alt="clip_image001[6]" src="http://s3.51cto.com/wyfs02/M01/8B/85/wKiom1hP-k2A_7nEAABtIfEPdgc847.png" height="94" />

我們為了認證統一 配置,再nginx的目錄下建立了一個ssl目錄,專門存放認證檔案

cd /etc/nginxMkdir ssl

650) this.width=650;" title="clip_image002[4]" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;margin:0px;padding-right:0px;" border="0" alt="clip_image002[4]" src="http://s3.51cto.com/wyfs02/M01/8B/81/wKioL1hP-k7BZ_bOAACBiB8HbEU349.png" height="127" />

然後我們將剛才的那三個檔案拷貝到這個目錄下

cp /etc/pki/tls/server.key server.csr certnew.crt /etc/nginx/ssl/

650) this.width=650;" title="clip_image003[4]" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;margin:0px;padding-right:0px;" border="0" alt="clip_image003[4]" src="http://s3.51cto.com/wyfs02/M02/8B/85/wKiom1hP-k-A2dviAAB1-wWyrmM320.png" height="117" />

650) this.width=650;" title="clip_image004[4]" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;margin:0px;padding-right:0px;" border="0" alt="clip_image004[4]" src="http://s3.51cto.com/wyfs02/M00/8B/85/wKiom1hP-lDT1rMrAABD8RHjPF8656.png" height="134" />

我們為了好記名,將申請的認證修改名字及副檔名

mv certnew.cer web.pem

650) this.width=650;" title="clip_image005[4]" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;padding-right:0px;" border="0" alt="clip_image005[4]" src="http://s3.51cto.com/wyfs02/M02/8B/85/wKiom1hP-lKiCj6XAABUWj0t2KE074.png" height="146" />

在配置ssl之前,我們先訪問以下,預設是80

650) this.width=650;" title="clip_image006[4]" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;margin:0px;padding-right:0px;" border="0" alt="clip_image006[4]" src="http://s3.51cto.com/wyfs02/M01/8B/81/wKioL1hP-lOz8lVeAAB4iNWiN0A670.png" height="423" />

650) this.width=650;" title="clip_image007[4]" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;margin:0px;padding-right:0px;" border="0" alt="clip_image007[4]" src="http://s3.51cto.com/wyfs02/M02/8B/85/wKiom1hP-lXzNh70AAFrh7x7u4M637.png" height="208" />

接下來我們配置ssl,預設的設定檔

vim /etc/nginx/conf.d/default.conf

650) this.width=650;" title="clip_image008[4]" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;margin:0px;padding-right:0px;" border="0" alt="clip_image008[4]" src="http://s3.51cto.com/wyfs02/M00/8B/81/wKioL1hP-leSM38kAAEh7k4akQQ049.png" height="407" />

我們因為不使用80,所以default.conf用不到,mv default.conf default.conf.bak 重新命名

我們在/etc/nginx/conf.d/下建立一個設定檔

vim nginx-ssl.confserver {listen 443;server_name nginx.ixmsoft.com;ssl on;ssl_certificate /etc/nginx/ssl/web.pem;ssl_certificate_key /etc/nginx/ssl/server.key;access_log logs/ssl_access.log;location / {root /usr/share/nginx/html;}}

我們保證設定檔沒有問題,可以使用以下命令測試

Nginx -t

650) this.width=650;" title="clip_image009[4]" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;margin:0px;padding-right:0px;" border="0" alt="clip_image009[4]" src="http://s3.51cto.com/wyfs02/M02/8B/81/wKioL1hP-ljz-GKoAAB-ym2GLxw828.png" height="146" />

查看連接埠資訊

650) this.width=650;" title="clip_image010[4]" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;margin:0px;padding-right:0px;" border="0" alt="clip_image010[4]" src="http://s3.51cto.com/wyfs02/M00/8B/81/wKioL1hP-lnQZYErAAFEDmj5JXE683.png" height="199" />

接下來我們嘗試訪問,443可以訪問了,而且認證載入都是對的

650) this.width=650;" title="clip_image011[4]" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;padding-right:0px;" border="0" alt="clip_image011[4]" src="http://s3.51cto.com/wyfs02/M01/8B/81/wKioL1hP-luBLAcgAACwTvx0liE583.png" height="371" />

如果想訪問80跳轉到443,那麼我們需要修改剛才的nginx_ssl.conf檔案。

我們需要配置一下

server {listen 80;server_name nginx.ixmsoft.com;rewrite ^(.*) https://$server_name$1 permanent;}server {listen 443;server_name nginx.ixmsoft.com;ssl on;ssl_certificate /etc/nginx/ssl/web.pem;ssl_certificate_key /etc/nginx/ssl/server.key;access_log logs/ssl_access.log;location / {root /usr/share/nginx/html;}}

這樣重啟nginx後,使用80訪問後會自動跳轉到443連接埠的https下

本文出自 “高文龍” 部落格,謝絕轉載!

Centos7+Nginx通過windows CA頒發及配置SSL服務

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.