親測:windows使用OpenSSL生成證書(使用者備用名稱(DNS))

最近一直在使用OpenSSL生成證書守屉,供tornado使用讥邻,tornado本身是支持使用SSL證書的,所有現(xiàn)在只需生成正確的證書就可以正常使用了蜒什,經(jīng)過自己的一番倒騰测秸,走了很多彎路,終于是可以使用了灾常,所以將步驟記錄下來霎冯,以便于自己查看,要是能對大家有幫助那就更好啦8诒铩(以下步驟親測有效肃晚,遇到的坑也會在下文提到,望高手指教W懈辍)

1关串、安裝OpenSSL

本來準備直接放一個鏈接在這的拧廊,但是感覺不是特別的準確,所以借鑒這個在寫詳細一些晋修。
(1)OpenSSL下載( [https://www.openssl.org/source/(https://www.openssl.org/source/))沒有提供windows版本的安裝包吧碾,可以選擇其他開源平臺提供的工具。例如 http://slproweb.com/products/Win32OpenSSL.html
根據(jù)你的系統(tǒng)來選擇不同的版本下載安裝

image.png

點擊運行文件后直接下一步就可以了墓卦,沒有什么特殊設(shè)置倦春。
(2)設(shè)置環(huán)境變量,例如工具安裝在C:\OpenSSL-Win64落剪,則將C:\OpenSSL-Win64\bin睁本;復制到Path中
image.png

這個路徑需要寫自己的安裝路徑呀,exe在bin文件中忠怖,所以記得加上bin
部分借鑒:https://blog.csdn.net/kitok/article/details/72957185

2呢堰、生成證書

在bin(bin文件在安裝目錄里面)文件中打開cmd,依次輸入以下命令:

注意:這里有一個大坑凡泣,我也是爬了好久的枉疼,所以先跟大家說明一下,再詳細說命令鞋拟。

由于Chrome 58 及以上版本只會使用 subjectAlternativeName 擴展程序(而不是 commonName)來匹配域名和網(wǎng)站證書骂维。如果直接按照下面的步驟生成的ssl證書是不能直接在谷歌正常使用的,會說證書無效贺纲,并報錯:NET::ERR_CERT_COMMON_NAME_INVALID 航闺。
以下是谷歌對這個錯誤的說明(https://support.google.com/chrome/a/answer/7391219?hl=zh-Hans

image.png

所以需要先解決這個問題,以下為解決步驟:
主要修改在openssl.cnf(該文件在bin文件中)

確保req下存在以下2行(默認第一行是有的猴誊,第2行被注釋了)

[ req ]
distinguished_name = req_distinguished_name
req_extensions = v3_req

確保req_distinguished_name下沒有 0.xxx 的標簽来颤,有的話把0.xxx的0. 去掉

[ req_distinguished_name ]
countryName = Country Name (2 letter code)
countryName_default = CN
stateOrProvinceName = State or Province Name (full name)
stateOrProvinceName_default = ShangHai
localityName = Locality Name (eg, city)
localityName_default = ShangHai
organizationalUnitName = Organizational Unit Name (eg, section)
organizationalUnitName_default = Domain Control Validated
commonName = Internet Widgits Ltd
commonName_max = 64

新增最后一行內(nèi)容 subjectAltName = @alt_names(前2行默認存在)

[ v3_req ]
# Extensions to add to a certificate request
basicConstraints = CA:FALSE
keyUsage = nonRepudiation, digitalSignature, keyEncipherment
subjectAltName = @alt_names

新增 alt_names,注意括號前后的空格,DNS.x 的數(shù)量可以自己加

[ alt_names ]
DNS.1 = abc.example.com
DNS.2 = dfe.example.org
DNS.3 = ex.abcexpale.net
DNS.4 = localhost

以上是為了添加‘使用者備用名稱(DNS)’稠肘,在下面的命令中會用到v3_req 也就是這幾個DNS,證書里面才會多一個‘使用者備用名稱’萝毛,如圖:

image.png

借鑒:http://blog.51cto.com/colinzhouyj/1566438

客戶端
  • 生成私鑰(key文件):
openssl genrsa -out client.key 2048
  • 生成csr文件
openssl req -new -key client.key -out client.csr -config openssl.cnf

這里需要填寫一些基本信息:


image.png
服務(wù)器端
  • 生成私鑰(key文件):
openssl genrsa -out server.key 2048
  • 生成csr文件
openssl req -new -key server.key -out server.csr -config openssl.cnf

這里的Common Name 寫主要域名就好了(注意:這個域名也要在openssl.cnf的DNS.x里)

CSR文件必須有CA的簽名才可形成證書.可將此文件發(fā)送到verisign等地方由它驗證,要交一大筆錢,何不自己做CA呢.

1项阴、在bin目錄下新建目錄 demoCA、demoCA/certs笆包、demoCA/certs环揽、demoCA/newcerts
2、在demoCA建立一個空文件 index.txt
3庵佣、在demoCA建立一個文本文件 serial, 沒有擴展名歉胶,內(nèi)容是一個合法的16進制數(shù)字,例如 0000
4巴粪、生成ca.key并自簽署

openssl req -new -x509 -days 3650 -keyout ca.key -out ca.crt -config openssl.cnf
用生成的CA的證書為剛才生成的server.csr,client.csr文件簽名:
openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key -extensions v3_req -config openssl.cnf

openssl ca -in client.csr -out client.crt -cert ca.crt -keyfile ca.key -extensions v3_req -config openssl.cnf

到這里證書就生成好了通今,下一步就是在tornado中使用了粥谬,詳情請看下一節(jié)python tornado使用OpenSSL生成的證書
資料:
http://www.yeolar.com/note/2015/04/30/tornado-ssl-https/
http://blog.51cto.com/colinzhouyj/1566438

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末辫塌,一起剝皮案震驚了整個濱河市漏策,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌臼氨,老刑警劉巖掺喻,帶你破解...
    沈念sama閱讀 207,113評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異储矩,居然都是意外死亡感耙,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評論 2 381
  • 文/潘曉璐 我一進店門持隧,熙熙樓的掌柜王于貴愁眉苦臉地迎上來即硼,“玉大人,你說我怎么就攤上這事舆蝴∏酰” “怎么了?”我有些...
    開封第一講書人閱讀 153,340評論 0 344
  • 文/不壞的土叔 我叫張陵洁仗,是天一觀的道長层皱。 經(jīng)常有香客問我,道長赠潦,這世上最難降的妖魔是什么叫胖? 我笑而不...
    開封第一講書人閱讀 55,449評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮她奥,結(jié)果婚禮上瓮增,老公的妹妹穿的比我還像新娘。我一直安慰自己哩俭,他們只是感情好绷跑,可當我...
    茶點故事閱讀 64,445評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著凡资,像睡著了一般砸捏。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上隙赁,一...
    開封第一講書人閱讀 49,166評論 1 284
  • 那天垦藏,我揣著相機與錄音,去河邊找鬼伞访。 笑死掂骏,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的厚掷。 我是一名探鬼主播弟灼,決...
    沈念sama閱讀 38,442評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼级解,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了袜爪?” 一聲冷哼從身側(cè)響起蠕趁,我...
    開封第一講書人閱讀 37,105評論 0 261
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎辛馆,沒想到半個月后俺陋,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,601評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡昙篙,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,066評論 2 325
  • 正文 我和宋清朗相戀三年腊状,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片苔可。...
    茶點故事閱讀 38,161評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡缴挖,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出焚辅,到底是詐尸還是另有隱情映屋,我是刑警寧澤,帶...
    沈念sama閱讀 33,792評論 4 323
  • 正文 年R本政府宣布同蜻,位于F島的核電站棚点,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏湾蔓。R本人自食惡果不足惜瘫析,卻給世界環(huán)境...
    茶點故事閱讀 39,351評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望默责。 院中可真熱鬧贬循,春花似錦、人聲如沸桃序。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽媒熊。三九已至亏掀,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間泛释,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評論 1 261
  • 我被黑心中介騙來泰國打工温算, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留怜校,地道東北人。 一個月前我還...
    沈念sama閱讀 45,618評論 2 355
  • 正文 我出身青樓注竿,卻偏偏與公主長得像茄茁,于是被迫代替她去往敵國和親魂贬。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,916評論 2 344

推薦閱讀更多精彩內(nèi)容