安全認證https伺服器的搭建

2021-07-25 04:50:27 字數 2906 閱讀 6899

網際網路中安全驗證的重要性不言而喻,今天就講下https伺服器的搭建,最後會測試從瀏覽器到訪問經過安全驗證的伺服器。廢話少數,進入正題。

先普及下檔案字尾的意義:

*.key:金鑰檔案,一般是ssl中的私鑰;

*.csr:證書請求檔案,裡面包含公鑰和其他資訊,通過簽名後就可以生成證書;

*.crt, *.cert:證書檔案,包含公鑰,簽名和其他需要認證的資訊,比如主機名稱(ip)等。

*.pem:裡面一般包含私鑰和證書的資訊。

再普及下ssl證書的意義:

1,ca證書,也叫根證書或者中間級證書。如果是單向https認證的話,該證書是可選的。不安裝ca證書的話,瀏覽器預設是不安全的。

2,伺服器證書,必選項。通過key,證書請求檔案csr,再通過ca證書簽名,生成伺服器證書。

3,客戶端證書,可選項。若有客戶端證書則是雙向https驗證。

./config --prefix=/usr/local --openssldir=/usr/local/openssl

make

make install

安裝過程中遇到了載入不到庫的錯誤,解決方案如下:

sudo ln -s /usr/local/lib/libssl.so.1.1 /usr/lib/libssl.so.1.1; sudo ln -s /usr/local/lib/libcrypto.so.1.1 /usr/lib/libcrypto.so.1.1)

./configure --prefix=/usr/local/apache --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --with-pcre=/usr/local/pcre 

make 

make install

開啟服務:sudo /usr/local/apache/bin/apachectl start/stop/restart.

在/usr/local/apache/htdocs建立test.html檔案,

開啟瀏覽器localhost/test.html可以測試下apache是否安裝成功

mkdir /usr/local/apache/conf/ssl.crt

cp /usr/local/ssl/misc/ca.pl /usr/local/apache/conf/ssl.crt

cd /usr/local/apache/conf/ssl.crt

./ca.pl

-newca

生成結果:democa/private/cakey.pem是ca證書的私鑰檔案,democa/cacert.pem是ca證書。

openssl genrsa -des3 -out server.key 1024

輸入加密密碼,用 128 位 rsa 演算法生成金鑰,得到 server.key 檔案。

openssl req -new -key server.key -out server.csr

csr( certificate signing request)是乙個證書簽名請求,在申請證書之前,首先要在伺服器上生成 csr,並將其提交給 ca 認證中心,ca 才能簽發 ssl 伺服器證書。

也可以認為,csr 就是乙個在伺服器上生成的證書。

如果不使用 ca 證書簽名的話,用如下方式生成:

openssl req -x509 -days 1024 -key server.key -in server.csr > server.crt

如果使用 ca 證書簽名,用 openssl 提供的工具 ca.sh 生成伺服器證書:

mv server.csr newreq.pem

./ca.pl -sign

mv newcert.pem server.crt

簽名證書後,可通過如下命令可檢視伺服器證書的內容:

openssl x509 -noout -text -in server.crt

可通過如下命令驗證伺服器證書:

openssl verify -cafile ca.crt server.crt

openssl genrsa -des3 -out client.key 1024

openssl req -new -key client.key -out client.csr

openssl ca -in client.csr -out client.crt

openssl pkcs12 -export -clcerts -in client.crt -inkey client.key -out client.pfx

開啟: loadmodule ssl_module modules/mod_ssl.so

去掉以下語句的注釋, include conf/extra/httpd-ssl.cfg

根據實際修改如下:

sslcertificatefile "/usr/local/apache/conf/ssl.crt/server.crt"

sslcertificatekeyfile "/usr/local/apache/conf/ssl.crt/server.key"

sslcertificatechainfile "/usr/local/apache/conf/ssl.crt/ca.crt"

sslcacertificatepath "/usr/local/apache/conf/ssl.crt"

sslcacertificatefile "/usr/local/apache/conf/ssl.crt/cacert.pem"等

最後把client.pfx匯入瀏覽器就ok了

測試結果如圖:

nginx搭建https伺服器

https hypertext transfer protocol over secure socket layer 是以安全為目標的http通道,簡單來講就是http的安全版。即http下加入ssl層,https的安全基礎是ssl,因此加密的詳細內容就需要ssl。它是乙個uri scheme 抽象...

Nginx搭建https伺服器

https簡介 https hypertext transfer protocol over secure socket layer 是以安全為目標的http通道,簡單來講就是http的安全版。即http下加入ssl層,https的安全基礎是ssl,因此加密的詳細內容就需要ssl。它是乙個uri s...

nginx 搭建https伺服器

安裝在之前的文章中已經寫過了。但是之前的安裝出現了錯誤導致https沒有安裝成功。所以這裡提一下大致的流程以及問題 openssl v ersion 命令用來列印版本以及 openssl 其他各種資訊。用法 cpp view plain copy openssl version a v b o f ...