一,環境說明
服務器系統:ubuntu16.04lts
服務器ip地址:47.89.12.99
域名:bjubi.com
二,域名解析到服務器
在阿里云控制臺-產品與服務-云解析dns-找到需要解析的域名點“解析”,進入解析頁面后選擇【添加解析】按鈕會彈出如下頁面:
主機記錄這里選擇@,記錄值就是服務器ip地址,確認。
三,申請ca證書
在阿里云控制臺-產品與服務-安全(云盾)-ca證書服務(數據安全),點擊購買證書,
選擇“免費版dv ssl”,點擊立即購買:
然后點去支付:
最后確認支付:
就會回到管理界面:
點擊“補全”,輸入要解析的域名,點下一步:
說明:因為我們這里申請的是開發版免費證書,所以一個證書僅支持一個域名認證,不支持通配符。
等待幾分鐘,證書狀態變為“已簽發”后,證書就申請成功了。
四,下載證書
列表中找到已簽發的證書,下載:
進入下載頁面,找到ngin頁簽中nginx配置信息,并“下載證書 for nginx”:
記錄以下內容,為了一會兒配置nginx用:
下載的文件有兩個:
1,214292799730473.pem
2,214292799730473.key
五,服務器安裝,配置nginx
登錄到服務器:
$?apt-get?update?//?更新軟件 $?apt-get?install?nginx?//?安裝nginx
1,nginx的安裝目錄為:/etc/nginx/。進入目錄,增加cert/文件夾,把剛剛下載的兩個文件上傳到cert/文件夾中。
2,在/etc/nginx/sites-enabled/下,增加bjubi.com文件。內容如下:
說明:下面的配置是對443端口和80端口進行監聽,443端口要啟用ssl。監聽443端口的server配置可以仿照上面ca認證頁面的nginx配置示例進行配置。
root節點筆者創建了一個bjubi.com/的文件夾,專門存放來自這個域名的請求以示區分。
bjubi.com/文件夾下增加一個index.html文件,里面僅僅寫了一行
welcome。
server?{ ??listen?443; ??server_name?bjubi.com;?//?你的域名 ??ssl?on; ??root?/var/www/bjubi.com;?//?前臺文件存放文件夾,可改成別的 ??index?index.html?index.htm;//?上面配置的文件夾里面的index.html ??ssl_certificate?cert/214292799730473.pem;//?改成你的證書的名字 ??ssl_certificate_key?cert/214292799730473.key;//?你的證書的名字 ??ssl_session_timeout?5m; ??ssl_ciphers?ecdhe-rsa-aes128-gcm-sha256:ecdhe:ecdh:aes:high:!null:!anull:!md5:!adh:!rc4; ??ssl_protocols?tlsv1?tlsv1.1?tlsv1.2; ??ssl_prefer_server_ciphers?on; ??location?/?{ ????index?index.html?index.htm; ??} } server?{ ??listen?80; ??server_name?bjubi.com;//?你的域名 ??rewrite?^(.*)$?https://$host$1?permanent;//?把http的域名請求轉成https }
server?{ ??listen?443; ??server_name?bjubi.com;?//?你的域名 ??ssl?on; ??root?/var/www/bjubi.com;?//?前臺文件存放文件夾,可改成別的 ??index?index.html?index.htm;//?上面配置的文件夾里面的index.html ??ssl_certificate?cert/214292799730473.pem;//?改成你的證書的名字 ??ssl_certificate_key?cert/214292799730473.key;//?你的證書的名字 ??ssl_session_timeout?5m; ??ssl_ciphers?ecdhe-rsa-aes128-gcm-sha256:ecdhe:ecdh:aes:high:!null:!anull:!md5:!adh:!rc4; ??ssl_protocols?tlsv1?tlsv1.1?tlsv1.2; ??ssl_prefer_server_ciphers?on; ??location?/?{ ????index?index.html?index.htm; ??} } server?{ ??listen?80; ??server_name?bjubi.com;//?你的域名 ??rewrite?^(.*)$?https://$host$1?permanent;//?把http的域名請求轉成https }
配置完成后,檢查一下nginx配置文件是否可用,有successful表示可用。
$?nginx?-t?//?檢查nginx配置文件
配置正確后,重新加載配置文件使配置生效:
$?nginx?-s?reload?//?使配置生效
至此,nginx的https訪問就完成了,并且通過rewrite方式把所有http請求也轉成了https請求,更加安全。
如需重啟nginx,用以下命令:
$?service?nginx?stop?//?停止 $?service?nginx?start?//?啟動 $?service?nginx?restart?//?重啟
七,訪問效果
輸入http:bjubi.com也會自動跳轉至https頁面。
說明:如果是云服務器比如阿里云ecs,需要到阿里云ecs的管理后臺的安全組,修改端口過濾規則把80端口和443端口開放才能訪問到。