前言
小白后臺(tái)僅僅只是一位小白Java
簡(jiǎn)單說(shuō)一下前情回顧,上個(gè)月小白陪老板出去一起談了一個(gè)大項(xiàng)目樊诺,其中涉及到大量的圖片和視頻存儲(chǔ)波桩,時(shí)間緊任務(wù)重眠屎,自建存儲(chǔ)服務(wù)是不現(xiàn)實(shí)的了剔交,小白計(jì)劃采購(gòu) 阿里云 OSS 服務(wù)來(lái)實(shí)現(xiàn)。
這篇文章里小白主要介紹了阿里云OSS配置 自定義域名 和 證書托管 以及申請(qǐng)阿里云 免費(fèi)SSL證書 的流程改衩,接下來(lái)有時(shí)間的話岖常,我還會(huì)介紹一下如何基于阿里云OSS 服務(wù)端簽名 + 前端直傳 方式在 微信小程序 中實(shí)現(xiàn)上傳文件,同時(shí)也會(huì)涉及到阿里云 STS + RAM 身份認(rèn)證 相關(guān)的內(nèi)容葫督。
前置條件
- 具備阿里云官方帳號(hào)
- 阿里云已開通OSS功能
- 具備已通過(guò)備案的域名
小白這里幻想自己已通過(guò)備案的域名是 oss.lzr.com竭鞍,要使用的OSS存儲(chǔ)空間bucket名為 lzr-bucket;
自定義域名
將文件上傳到阿里云 OSS 的 Bucket 后橄镜,阿里云會(huì)自動(dòng)生成該文件的訪問(wèn)地址偎快,我們可以使用此地址訪問(wèn)存儲(chǔ)空間文件。如果我們想要通過(guò)自定義域名訪問(wèn)這些文件蛉鹿,需要將自定義域名綁定到文件所在的存儲(chǔ)空間滨砍,并添加 CNAME 記錄指向存儲(chǔ)空間對(duì)應(yīng)的外網(wǎng)域名。接下來(lái)我們介紹 綁定自定義域名 以及 添加域名解析 的步驟妖异。
1. 新建Bucket
打開阿里云對(duì)象存儲(chǔ)控制臺(tái)界面,點(diǎn)擊左側(cè) “+” 號(hào)新建Bucket领追。小白新建的Bucket名稱為 lzr-bucket他膳,區(qū)域選擇了 華東1(杭州),其他選項(xiàng)自行根據(jù)需要設(shè)置绒窑。
2. 綁定自定義域名
在 lzr-bucket 管理頁(yè)棕孙,選擇 域名管理 > 綁定用戶域名,彈出框中添加自定義域名 oss.lzr.com 后提交 。添加的域名是你當(dāng)前阿里云賬號(hào)下管理的域名時(shí)蟀俊,阿里云可以自動(dòng)添加 CNAME 記錄钦铺;非當(dāng)前阿里云賬號(hào)下的域名,則需要在你的域名服務(wù)商處手動(dòng)添加CNAME記錄肢预。
小白的域名 oss.lzr.com 是在 西部數(shù)碼 管理的矛洞,所以小白需要到西部數(shù)碼手動(dòng)完成域名解析,接下來(lái)也會(huì)給出手動(dòng)添加CNAME的步驟烫映。
3. 添加CNAME記錄
手動(dòng)添加CNAME時(shí)沼本,需要先知道我們Bucket的 阿里云公網(wǎng)域名 。阿里云OSS 華東1(杭州)的EndPoint(地域節(jié)點(diǎn))公網(wǎng)域名為 oss-cn-hangzhou.aliyuncs.com锭沟,我們的Bucket公網(wǎng)訪問(wèn)域名為 lzr-bucket.oss-cn-hangzhou.aliyuncs.com 抽兆。
如下圖所示,我們可以在 lzr-bucket 概覽 頁(yè)快速獲取阿里云Bucket公網(wǎng)訪問(wèn)域名族淮。
接下來(lái)登錄 西部數(shù)碼 域名服務(wù)商平臺(tái)辫红,手動(dòng)添加CNAME,將自定義域名 oss.lzr.com 解析到 lzr-bucket 的公網(wǎng)訪問(wèn)域名 lzr-bucket.oss-cn-hangzhou.aliyuncs.com祝辣,解析記錄類型為 CNAME 贴妻。
配置 CNAME 后,不同的域名服務(wù)商 CNAME 配置生效的時(shí)間也不同较幌。你可以 ping 或 lookup 你所添加的域名揍瑟,如果被轉(zhuǎn)向 *.oss-cn-*.aliyuncs.com,即表示 CNAME 配置已經(jīng)生效乍炉。
我們?cè)?lzr-bucket 域名管理 頁(yè)绢片,找到已添加的自定義域名 oss.lzr.com,點(diǎn)擊右側(cè)的 域名綁定配置 可以看到 oss.lzr.com 映射到 lzr-bucket.oss-cn-hangzhou.aliyuncs.com岛琼,同樣的底循,在這里也可以實(shí)現(xiàn)自定義域名 解除綁定 。
到這里槐瑞,我們就完成了阿里云OSS綁定自定義域名熙涤,接下來(lái)我們介紹如何申請(qǐng) 免費(fèi)證書 以及進(jìn)行SSL 證書托管 。
申請(qǐng)免費(fèi)證書
很多場(chǎng)景下需要我們?yōu)樽约旱姆?wù)配置SSL證書支持困檩,比如微信小程序開發(fā)要求必須使用 HTTPS 協(xié)議等祠挫。專業(yè)版的證書價(jià)格高昂,前期開發(fā)過(guò)程中一般都會(huì)選擇免費(fèi)證書悼沿。
1. 購(gòu)買免費(fèi)證書
打開阿里云SSL證書產(chǎn)品主頁(yè)等舔,點(diǎn)擊 立即購(gòu)買 進(jìn)入購(gòu)買主頁(yè),依次選擇 免費(fèi)型DV SSL > 立即購(gòu)買糟趾,完成支付并進(jìn)入阿里云 SSL證書控制臺(tái) 慌植。
需要注意到甚牲,完成免費(fèi)SSL證書的購(gòu)買并不代表已經(jīng)可以使用免費(fèi)證書,購(gòu)買后還需要向證書廠商申請(qǐng)簽發(fā)證書蝶柿,只有完成審核/簽發(fā)后才能下載并使用相應(yīng)證書丈钙。
2. 證書申請(qǐng)
在 SSL證書控制臺(tái),找到新購(gòu)買的SSL證書交汤,點(diǎn)擊右側(cè) 申請(qǐng) 彈出證書申請(qǐng)對(duì)話框雏赦。在證書申請(qǐng)對(duì)話框中依次輸入證書要綁定的 域名 以及 域名驗(yàn)證方式 等信息后點(diǎn)擊 下一步 進(jìn)入域名DNS驗(yàn)證頁(yè)。
這里需要說(shuō)明的是蜻展,因?yàn)樾“椎挠蛎辉诋?dāng)前阿里云賬號(hào)下管理喉誊,而是在 西部數(shù)碼 平臺(tái)管理,所以這里小白選擇的是 手動(dòng)DNS驗(yàn)證纵顾,實(shí)際操作中大家可以根據(jù)實(shí)際情況選擇其他驗(yàn)證方式伍茄。
在上圖中,我們獲取到了手動(dòng)DNS驗(yàn)證信息的 主機(jī)記錄 和 記錄值施逾,下面我們到域名服務(wù)商平臺(tái)下進(jìn)行相應(yīng) TXT記錄 類型解析敷矫,解析時(shí)注意不要將 主機(jī)記錄 和 記錄值 寫反了。域名解析完成后點(diǎn)擊 驗(yàn)證 即可汉额,接下來(lái)就是等待SSL證書簽發(fā)機(jī)構(gòu)的審核了曹仗,通常情況下半小時(shí)左右即可通過(guò),待審核通過(guò)后即可下載證書文件到本地備份蠕搜。
證書托管
在 lzr-bucket > 域名管理 下怎茫,找到要托管證書的自定域名 oss.lzr.com ,點(diǎn)擊右側(cè)的 證書托管 打開證書托管彈窗妓灌,在證書托管彈窗里將之前下載到本地的SSL證書文件的 公鑰&私鑰 填入相應(yīng)位置轨蛤,點(diǎn)擊 上傳 完成證書托管。
總而言之
阿里云OSS使用起來(lái)還是很方便的虫埂,但是項(xiàng)目中實(shí)際使用時(shí)還是要多考慮自身場(chǎng)景的需求和限制祥山,比如是否需要綁定自定義域名、是否需要HTTPS支持掉伏?除此之外缝呕,還要考慮實(shí)現(xiàn)方案所采用的的身份認(rèn)證方式是否夠安全?有沒(méi)有更加安全的身份認(rèn)證方案斧散?是使用服務(wù)端上傳呢還是前端上傳供常?采用前端上傳方案時(shí)如何簽名?是前端自簽名呢還是服務(wù)端簽名鸡捐?
總而言之话侧,實(shí)現(xiàn)功能很簡(jiǎn)單,至少看起來(lái)不難闯参,要努力保持不斷挖掘更優(yōu)實(shí)現(xiàn)的執(zhí)拗瞻鹏,不要成為一個(gè)只為實(shí)現(xiàn)功能而不斷堆代碼的碼農(nóng)。