日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ClickOnce部署(3):使用证书

發布時間:2024/4/13 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ClickOnce部署(3):使用证书 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在講述證書的使用前,我們先來了解另外一個知識——發布網頁。

在前面所說的ClickOnce部署中,如果大家細心的話,應該會發現這么個問題。

如上圖,發布成功后,在"輸出"窗口中提示無法查看發布網頁。

好,我們先不管那是什么,現在我們不妨發布一個項目,但在"項目屬性"窗口中的"發布"選項卡上,點擊"選項"按鈕,打開"發布選項"對話框。

在"說明"頁中輸入基本信息,產品名稱和發布者。

然后進入到"部署"頁,在部署網頁處輸入一個頁面名稱,最好用index.htm或default.htm之類的名字,因為IIS等服務器的默認頁面通常是這些。并且勾選"每次發布后都自動生成部署網頁"項。

單擊確定回到發布頁,然后我們點擊一下"立即發布",仔細觀察。這一次我們發現,"輸出"窗口不再提示無法打開部署頁面了,而且發布完成后打開了一個頁面,就是我們剛才輸入的發布網頁,是VS為我們自動生成的。

?

我們可以用VS或其他網頁編輯工具來修改這個頁面,一旦我們修改后,記得回到項目屬性中的發布頁,再次打開發布選項對話框,去掉"每一次發布后自動生成部署網頁"項前面的對勾,不然,你所修改的頁面在下一次發布后會被自動生成的頁面所覆蓋。

?

好,這段內容就說到這兒。下面開始我們的正題。

?

?

大家還記得這個界面不?

我們在安裝ClickOnce應用程序的時候,都會彈出這個安全警告,雖然點擊"安裝"就可以開始安裝,但是,這就變成不是ClickOnce了,而是ClickTwice了,是吧,我們至少點擊了兩下。

這是由于沒有識別到受信任的證書造成的。下面我們來看看如何自己來做證書。

其實VS在發布ClickOnce部署時是為我們生成了一個臨時證書的,但這樣不太好控制,我們希望自己來做一個符合我們要求的證書,至少在證書的過期日期上我們可以自己來定。對于我們小開發者或小團隊來說,到證書機構購買證書似乎有點"裝逼"了,反正證書就是用來標識我們發布者身份,確保我們的應用安裝包在傳播過程中不被修改,我們倒不如自己弄一個證書更簡便。

?

在項目屬性窗口中,我們切換到"簽名"選項卡,這里看到VS生成的臨時證書。

?

我們來自己做個證書吧,自己給自己頒發證書,非常有榮譽感的。要完成這件事,我們需要用到幾個命令行工具,其實大家網上搜一下,也是有很多相關文章的,這里我也順便給大家演示一遍。

a、首先粉墨登場的是makecert工具,大家看看它的名字就知道它的長相,有點帥,作用當然是創建一個.cer文件,即證書文件。至于是啥類型的證書,純屬理論課,大家維基百科一下就有了。

打開Visual Studio命令行窗口,不要告訴我你找不到,然后我們最好用CD命令修改一下當前目錄,我們希望把創建的文件放到哪里就定位到哪里,我呢計劃把這些榮譽證書文件放到C:\Users\Admin下,即我的個人目錄。輸入以下命令:

cd %USERPROFILE%\證書

這樣,第一步也完成了,看:

?

b、用makecert命令生成一個證書文件my.cer,并且附帶一個密鑰my.pvk。輸入以下命令:

makecert –r –n "CN=老周" –b 10/08/2013 –e 08/11/2016 –sv my.pvk my.cer

按回車后,提示創建密碼,輸入密碼,你喜歡,為了好玩,我這里用123456789作為密碼。

點擊OK按鈕,然后又彈出一個窗口,注意,這個和上面那個不同,上面那個是創建密碼,下面這個是用剛才創建的密碼來創建證書。剛才我設置了123456789,所以這里還是要輸入123456789,不要輸錯密碼,不然要從頭再來了。

點擊OK按鈕,好,證書和私鑰文件就創建完成了。就是這兩個文件:

解釋一下,-r參數表示自簽名,說白了就是自己給自書頒發證書,一定要加上-r,-n是證書的名字,通常用你的大名或者你公司的名字,以CN開頭,格式為CN=<your name>,比如我叫老周(本來收小周,就因為叫小周的人太多,所以我叫老周),就用CN=老周。

-b是證書有效期的開始日期,格式mm/dd/yyyy,注意,別寫錯,哪怕你是1月份也不要寫成1,應該寫成01;-e是證書有效期的過期日期,格式和前面一樣。

-sv是創建密鑰文件,文件名為*.pvk,-sv要加上,后面你會發現,有用的。

最后就是證書文件的名字,文件名為*.cer。

?

c、證書是生成了,但你會看到VS要的.pfx文件,不是.cer文件,所以我們必須轉換,但是沒有工具可以一部到位,所以,我們依次用兩個工具來轉換。

先是用cert2spc,把.cer文件轉換為.spc文件,不要問為什么,到了后面一步你就知道為什么要轉為.spc文件了。繼續在命令行中輸入:

Cert2spc my.cer my.spc

完成后我們看到又多了一個文件:

我們離真相越來越近了,還剩最后一個,我們的.pfx證書就要完工了。最后一步就是把.pvk文件轉為.pfx文件。所以用pvk2pfx,繼續在命令行中輸入以下命令:

pvk2pfx -pvk my.pvk -spc my.spc -pfx my.pfx -pi 123456789 –po 123456789 –f

這個工具比較復雜,-pvk指定剛才生成的.pvk文件;-spc就是剛才生成的.spc文件;-pfx是要生成的.pfx文件的名字,-pi是.pvk文件的密碼,即我們前面創建的123456789,-po是生成的.pfx文件的密碼,你可以重新設,我這里還是用123456789。

?

pfx弄好了,現在我們把它放進VS中。VS解決方案中,可以把<項目名>_TemporaryKey.pfx刪了,那個是VS生成的臨時證書,現在我們有自己的證書了,臨時證書就沒用了,我們可以送它去見列寧了。

打開項目屬性窗口,切換到"簽名"選項卡,點擊"從文件選取"按鈕,導入剛才生成的.pfx證書。

?

然后輸入密碼,密碼就是上面執行pvk2pfx命令時-po參數指定的密碼,我仍使用了123456789。

?

OK,證書就替換了。

?

你只要把剛才的.cer文件(即證書)發給客戶,客戶在安裝你的ClickOnce包之前先把證書安裝到他的計算中的可信任區域中,然后再去安裝你的應用,就不會有安全提示了。以后你發布的應用都用這個證書就行了,不過,注意證書不要過期了,過期了就重新生成一個日期較新的。

在客戶的機子上,打開控制面板,搜索"證書",然后打開基于計算機的證書管理器,注意不是基于當前用戶。

?

打開證書管理,在"受信任的根證書頒發機構"節上右擊,從菜中選擇導入。

?

在"受信任的發布者"節上的也用同樣的方法導入一次。隨后我們再發布一次ClickOnce部署包,現在就真正ClickOnce了,一點擊就全自動安裝了,沒有安全提示了。

總結

以上是生活随笔為你收集整理的ClickOnce部署(3):使用证书的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。