centos中Nginx 安裝ssl認證步驟

來源:互聯網
上載者:User


先說下https也就是ssl認證,一般我們認為https是安全的,但是SSL 憑證的信用鏈體系並不安全。特別是在某些國家(咳咳,你們懂的)可以控制 CA 根憑證的情況下,中間人攻擊一樣可行。另外,在用戶端被植入無數後門、木馬的狀況下,HTTPS 串連的作用非常有限。

 

我不使用的原因

更換https和替換網域名稱代價是一樣的
又拍雲不支援自訂網域名https
好了,我們可以開始配置ssl了。一般來說我比較推薦namecheap的ssl認證,因為比較便宜,畢竟對大部分個人部落格來說只是想要那個綠鎖提升逼格罷了~

使用OpenSSL產生認證

cd /usr/local/nginx/conf/
/usr/local/nginx/conf# openssl genrsa -out yourdomain.pem 2048
Generating RSA private key, 2048 bit long modulus
........+++
................................................................................................................+++
e is 65537 (0x10001)
產生認證

openssl req -new -key yourdomain.pem -out yourdomain.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) []:Beijing
Locality Name (eg, city) [Default City]:Beijing
Organization Name (eg, company) [Default Company Ltd]:Bigfa
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) []:yourdomain.com 
Email Address []:admin@yourdomain.com

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
執行cat yourdomain.csr

-----BEGIN CERTIFICATE REQUEST-----
MIICxDCCAawCAQAwfzELMAkGA1UEBhMCQ04xEDAOBgNVBAgMB0JlaWppbmcxEDAO
BgNVBAcMB0JlaWppbmcxDjAMBgNVBAoMBUJpZ2ZhMRcwFQYDVQQDDA55b3VyZG9t
YWluLmNvbTEjMCEGCSqGSIb3DQEJARYUYWRtaW5AeW91cmRvbWFpbi5jb20wggEi
MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC9fsxThwLzCd54s2GMUcjlleCj
LTf9bYGQyIjn+6z7kJbDbcrkbZxMysfRnFLa6u5oK7S9PQfGHK/gZeHfSLXbD/GL
wi171tZpnQHjfLjMbHEUEUCFQD7ueek/v3/Tr+T0+em1gQt/93K2dqv7Cx+bupwc
zNkQmqNgqslC4sdKQZjLUIHYLr/j8lQQLOOn9/PiuNOGCTaK5g9TA20oVCjpJZuf
1eN7jYUOtvy4IGhq4BkNJHHmg32cxH9mZOgmhohq+pbmi0PP8E2OFTzpyZ6OcFtW
IcSRq3UpjPw8EYfEg4lDC0Xee2Yom7Is8yBWAPcNKxpvFphlHirHOF6xifRzAgMB
AAGgADANBgkqhkiG9w0BAQUFAAOCAQEAN9OnT8J1VnO74bXbJS9ub7DGf94klpoy
YQWePKelnImU1Zszdg3jYtKWZVcNYhM5QfZ16CDKwYEQeQkgy1xSBKkwpY24ICe+
iX1sczvBY/gUq+xNArL5La7/Tow3KrJZJuFc1iVESBG0wU8zu9ZcnwbuRj0Dn8qj
fMqwwct+0Xz2zXxiqtVCPNQXqa/YRANGnFnBBPErBnaL/j439s4TBasSiIyb7TE+
Ku9LrfecL5w8+05NFPcG1ArpbQJDuJIIAk1itTMLEMGqUYWD6MYcksH4FcTr70Vw
f8Ag9+Csyf5aQxQVgNDCgc3zwHTg0Bpbldx8+HiCiDXjaK4qAXKBRQ==
-----END CERTIFICATE REQUEST-----
把—

 

NameCheap產生數位憑證

因為新認證還沒有網域名稱可用,所以這部分截圖以後補上。

進入Namecheap管理介面,點擊“Activate Now”即可啟用SSL產品。

之後會出現一個提交認證向CA(數位憑證頒發機構)提交OpenSSL產生的認證的頁面,把前面複製的內容粘貼進去,系統選擇nginx。

接下來是選擇網域名稱管理員郵箱,郵箱必須是能夠接收到郵件。同時確認一下產生認證時填寫的資訊是否正確。選用預設那個特別長的會發送到你namecheap的註冊郵箱。

之後提交訂單即可。

過段時間會收到一封驗證郵件,點擊郵件中的驗證地址並並填寫驗證碼即可。

過段時間郵箱就會收到發來的認證,下載附件的壓縮包解壓,裡面好像有4個檔案,選擇你yourdomain.pem。上傳到你的伺服器,注意路徑,後面配置的時候需要載入這個認證

Nginx虛擬機器主機設定SSL

ssl是443連接埠,注意憑證路徑。

server
 {
  listen 443 ;
  server_name fatesinger.com;
  ssl on;
  ssl_certificate /usr/local/nginx/conf/fatesinger_com.crt;
  ssl_certificate_key /usr/local/nginx/conf/bigfa.pem;
  index index.html index.htm index.php default.html default.htm default.php;
  root  /home/wwwroot/fatesinger.com;
  access_log  /home/wwwlogs/fatesinger.com.log  access;
 }
全站https跳轉

if ($server_port = 80) {
    return 301 https://$server_name$request_uri;
}
if ($scheme = http) {
    return 301 https://$server_name$request_uri;
}
error_page 497 https://$server_name$request_uri;

最後就是ssl認證本身沒多少錢,也有免費的,如果我是新站的話我肯定毫不猶豫的配置上ssl認證,但是現在對我來說全站配置ssl代價還是蠻大的,所以只在部分URL啟用了https,如何只在部分url使用https可以接著往下看

在nginx的配置中,必須同時配置兩個連接埠,一個是80一個是443。

server {
    root /var/www/
    location / {
    }
    location /user {
        rewrite ^ https://$http_host$request_uri? permanent;
    }
}
這個帶/user的url會自動跳轉為https

然後在443連接埠進行相反的設定
Then, in your 443 server, you do the opposite.

server {
    listen 443;
    root /var/www/
    location / {
        rewrite ^ http://$http_host$request_uri? permanent;
    }
    location /user {
    }
}

。https肯定是趨勢,如果是新站還不差那幾十塊錢的話就配置一個吧。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.