購買證書
在Namecheap購買SSL證書后,進入個人主頁,你會看到如下信息:
You have purchased SSL certificates and at least 1 certificate(s) are not yet activated. Please go to the SSL Certificates page and click on 'Activate Now' next to your SSL purchase item to start the issue process.
大致意思就是說你已經購買了SSL證書但沒有被激活需要激活。點擊超鏈接,進入證書激活頁面。然后找到SSL證書列表找到你購買的產品,點擊Activate Now。
在Select web server的選項中選擇nginx服務器。然后就是填寫你的CSR。此時我們暫時沒有CSR。
生成SSL證書獲取CSR
在你的電腦上執行命令:
sudo openssl genrsa -des3 -out server.key 2048
一種是2048位,一種是1024位。Namecheap要求是生成2048位的密鑰文件。之后會讓你輸入加密密碼。
然后創建一個證書簽名:
sudo openssl req -new -key server.key -out server.csr
輸入剛才填寫的密碼,這里會讓你填寫一大堆信息。按照要求寫就好了,需要注意的是里面common name填的是你網站的域名。完成后可以在當前目錄下看到新生成的.csr和.key文件。
Namecheap SSL證書激活
執行cat server.csr獲取里面的加密字符串,提供給Namecheap,確認后你會看到需要你確認接受郵件的郵箱地址。這里的聯系人郵箱必須是關聯的域名郵箱。
確定后你會收到一封激活郵箱,按步驟激活成功后又會收到一封帶附件的郵箱。附件里面的四個文件就是安裝SSL證書必備的文件。
Nginx安裝SSL證書
新建一個server.crt文件,然后按照文件順序依次添加內容到該文件中,確保沒有空格。
xxxx.crt、COMODORSADomainValidationSecureServerCA.crt、COMODORSAAddTrustCA.crt、AddTrustExternalCARoot.crt。
將新生成的server.crt文件和之前的server.key文件上傳到服務器。
上述生成步驟本人一直沒有成功。最后直接提交xxxx.crt文件而不是server.crt文件。
在服務器執行nginx -V
查看http ssl模塊是否支持。
修改服務器的配置文件,可以參考如下內容:
listen 443;
ssl on;
ssl_certificate /root/server.crt;
ssl_certificate_key /root/server.key;
ssl_session_timeout 5m;
保存后執行service nginx restart
重啟nginx。
一些科普知識
關于生成的*.key文件是你的私鑰,通過*.key文件生成的*.csr為證書請求文件,你只要把CSR文件提交給證書頒發機構后,證書頒發機構使用其根證書私鑰簽名就生成了證書公鑰文件即后來生成的*.crt文件,也就是頒發給用戶的證書。
更多關于公鑰和私鑰的知識可以參考本人博客的《公鑰和私鑰》