如何用openssl生成ssl證書,金鑰

2021-03-03 23:11:09 字數 5855 閱讀 4671

1樓:匿名使用者

你是打算自己電腦上生成ssl?還是打算伺服器上新增ssl?如果是自己電腦上生成ssl的話你去看這個**:

如何生成ssl證書和key

2樓:聚妍ssl證書

生成ssl證書步驟:1.將csr提交到證書服務商->2.

資料提交到ca機構->3.傳送驗證郵件到管理員郵箱->4.郵件驗證->5.

頒發證書。之後你可以自己安裝證書或者讓工作人員給你安裝證書。

key生成:首先生成證書需要csr檔案,csr檔案就是證書生成檔案,裡面包含的域名所有人或公司的資訊,用csr去向ca申請簽發域名證書。生成csr的同時,會自動生成一個key檔案,ca批准簽發證書後,伺服器或面板需要證書檔案和key檔案一起使用。

3樓:匿名使用者

csr用於申請ssl證書的請求檔案,key用於ssl證書的安裝。

一、ssl證書請求檔案(csr)生成指南:網頁連結

二、csr檔案生成工具:網頁連結

4樓:匿名使用者

使用openssl工具可以生成key和ssl證書,但是這是自簽名ssl證書,存在安全隱患,瀏覽器不信任,建議去受信任的第三方機構申請正規ssl證書,沒預算的話可以申請免費的,安全性有保障,這裡就有網頁連結,挺好用的。

5樓:匿名使用者

自己生成ssl證書是自簽名證書,不安全,最好是交給正規證書頒發機構去生成,還不用自己弄**那麼複雜,gdca可以申請各型別ssl證書,免費付費的都有,看你需要。

6樓:妮蕙孟歆

最好不要自己生成,那就是自簽名的證書了,不會被瀏覽器和作業系統信任。

一般ssl證書都是由權威ca機構生成並簽發,key是會由ca發給申請者。具體生成過程就是將你的申請相關資訊與ca的相關資訊利用特定手段拼接到一起,然後會涉及資料摘要、數字簽名、密碼技術等手段。

國內的證書**商,像天威誠信、易維信,都是**國外的數字證書品牌,像symantec、geotrust、globalsign等全球知名品牌。

生成ssl證書先要向**商提供申請檔案,自己生成或是**商生成csr檔案,然後由**商提交給ca驗證申請者身份,驗證通過後,才會由ca頒發證書,**商代為安裝或協助安裝。

openssl 生成ssl證書 能不能用

7樓:安信ssl證書

用openssl生成的ssl證書也叫自簽名ssl證書,這種證書不建議使用,因為有很多弊端:

第一、被「有心者」利用。

其實「有心者」指的就是黑客。自簽名ssl證書你自己可以簽發,那麼同樣別人也可以簽發。黑客正好利用其隨意簽發性,分分鐘就能偽造出一張一模一樣的自簽證書來安裝在釣魚**上,讓訪客們分不清孰真孰假。

第二、瀏覽器會彈出警告,易遭受攻擊

前面有提到自簽名ssl證書是不受瀏覽器信任的,即使**安裝了自簽名ssl證書,當使用者訪問時瀏覽器還是會持續彈出警告,讓使用者體驗度大大降低。因它不是由ca進行驗證簽發的,所以ca是無法識別簽名者並且不會信任它,因此私鑰也形同虛設,**的安全性會大大降低,從而給攻擊者可乘之機。

第三、安裝容易,吊銷難

自簽名ssl證書是沒有可訪問的吊銷列表的,所以它不具備讓瀏覽器實時查驗證書的狀態,一旦證書丟失或者被盜而無法吊銷,就很有可能被用於非法用途從而讓使用者蒙受損失。同時,瀏覽器還會發出「吊銷列表不可用,是否繼續?」的警告,不僅降低了網頁的瀏覽速度,還大大降低了訪問者對**的信任度。

第四、超長有效期,時間越長越容易被破解

自簽名ssl證書的有效期特別長,短則幾年,長則幾十年,想簽發多少年就多少年。而由受信任的ca機構簽發的ssl證書有效期不會超過2年,因為時間越長,就越有可能被黑客破解。所以超長有效期是它的一個弊端。

8樓:匿名使用者

自己生成的,無法使用不會被瀏覽器信任,需要**gw***獲取ssl證書才可以信任。

如何生成openssl生成https證書

9樓:匿名使用者

自簽名的ssl證書是不會被瀏覽器信任的,建議您直接**:gw*** ssl辦理一個公網信任的證書使用,**又不貴,而且省省力。

用openssl生成的ssl證書和付費的有什麼區別

10樓:gdca數安時代

用openssl生成的ssl證書即自簽名證書,存在安全隱患,而且不受瀏覽器信任。最好從正規第三方證書頒發機構去申請,還不用自己弄**那麼複雜,gdca可以申請各型別ssl證書,免費付費的都有,看你需要。

11樓:安信ssl證書

openssl生成的ssl證書也叫自簽名ssl證書,簽發很隨意,任何人都可以簽發,容易被黑客仿冒利用,不是由正規的ca機構頒發的,所以不受瀏覽器的信任。

而付費的ssl證書,是由受信任的ca機構頒發的,申請時會對域名所有權和企業相關資訊進行驗證,安全級別是比較高的,而且備受各大瀏覽器的信任。當然是付費的好。

12樓:匿名使用者

本文記敘的是一次基於ssl的socket通訊程式開發中,有關證書,簽名,身份驗證相關的步驟。 我們的場景下,socket服務端是java語言編寫的,客戶端是c語言。使用了一個叫做matrixssl的c語言庫。

自己做ca簽名,不等同於「自簽名」。 自簽名的情況,rsa的公鑰私鑰只有一對,用私鑰對公鑰證書做簽名。而我們的場景是,自己做ca,有一個ca的公鑰私鑰對。

而socket的服務端也有一個公鑰私鑰對。 用ca的私鑰對socket服務端的公鑰證書做簽名。

openssl genrsa -out ca.key 1024

(這裡我們沒有用des3加密。 可以增加一個-des3引數加密,詳情可以man genrsa)

openssl req -new -x509 -days 36500 -key ca.key -out ca.crt

(這一步的時候需要在提示之下輸入許多資訊,包括國家**,省份,城市,公司機構名等)

生成server端的私鑰key:

openssl genrsa -out server.key 1024

生成server端的req檔案(這一步生成的req檔案,包含公鑰證書,外加身份資訊,例如國家,省份,公司等。用它提交給ca,讓ca來對它做簽名 ):

openssl req -new -key server.key -out server.csr

用ca的私鑰對server的req檔案做簽名,得到server的證書:

openssl x509 -req -days 3650 -in server.csr -ca ca.crt -cakey ca.

key -cacreateserial -out server.crt

(注:如果第一次使用openssl,報告一些相關的檔案找不到之類的錯誤,可能需要先執行2個命令:touch /etc/pki/ca/index.

txt 和 echo '01' > /etc/pki/ca/serial)

以上得到的server.crt就是服務端的證書檔案。(有很多軟體中需要各種不同證書儲存格式,可能需要各種轉換。

如pem, p12等,我們的場景下也需要一點轉換,下文會描述。剛開始做這些的同學可能會覺得證書,以及格式等非常的混亂。 這個時候能做的就是冷靜下來,耐心的理清楚tls, rsa等原理, 多看看openssl的man文件)

不知道把ca.crt叫做ca的證書檔案是否妥當,但是可以確定的是,客戶端使用ca.crt可以校驗server的身份。

server在ssl/tls握手的過程中會下發自己的證書,而這個證書是經過ca簽名的。ca簽名的時候使用的是ca自己的私鑰,而ca.crt則包含了ca的公鑰,可以用於檢驗這一簽名,以確認是否是自己籤的名。

服務端需要使用的檔案是:server私鑰(key), server證書。

客戶端需要使用的檔案是:ca file(ca的證書,用以驗證server下發的證書)

我們的server端使用java, 使用p12(pkcs12)格式的證書。使用openssl可以進行格式轉換:

openssl pkcs12 -export -clcerts -in server.crt -inkey server.key -out server.p12

可以看到輸出的server.p12中應該包含了server.key和server.crt的內容。

我們的c語言客戶端直接使用ca檔案: ca.crt.

我們也用java寫過客戶端, java使用ca檔案格式為 jks。那麼可能需要一個轉換,這裡使用的是java的bin目錄下的keytool:

keytool -importcert -alias ca -file ca.crt -keystore ca.jks

轉換的時候要求輸入一個密碼。這樣就把ca.crt轉換為了 ca.jks格式。

下面附上部分socket服務端和java版的客戶端的**。c的就不貼了,用的matrixssl。

java服務端(mina)**片段:

string file = "/file/path/server.p12";

string keytype = "pkcs12"; char password = "passwd".tochararray();

keystore ks = keystore.getinstance(keytype);

ks.load(new fileinputstream(file), password);

keymanage***ctory kmf = keymanage***ctory.getinstance(

keymanage***ctory.getdefaultalgorithm());

kmf.init(ks, password);

sslcontext ctx = sslcontext.getinstance("tls");

ctx.init(kmf.getkeymanagers(), null, null);

sslfilter sslfilter = new sslfilter(ctx); // 在mina的acceptor中增加這個filter就可以了。

acceptor.getfilterchain().addlast("ssl", new sslfilter(createsslcontext()));

java版客戶端(mina)**片段:// trust string file = "/data/tmp/ca.jks";

string keytype = "jks"; char password = "123456".tochararray();

keystore ks = keystore.getinstance(keytype);

ks.load(new fileinputstream(file), password);

trustmanage***ctory tmf = trustmanage***ctory

.getinstance(trustmanage***ctory.getdefaultalgorithm());

tmf.init(ks);

sslcontext sslcontext = sslcontext.getinstance("tls");

sslcontext.init(null, tmf.gettrustmanagers(), null);

sslfilter sslfilter = new sslfilter(sslcontext);

sslfilter.setuseclientmode(true); // server端是addlast , 這個卻是 addfirst. 這個順序不能搞錯了。

connector.getfilterchain().addfirst("sslfilter", sslfilter);

如何用eclipse生成jar檔案

選定專案,點選右鍵 點選export,選定jar,如圖 填入需要匯出的jar的名字和路徑,如何用eclipse生成jar檔案 用eclipse匯出jar檔案的詳細步驟 如何用eclipse生成jar檔案 如何用eclipse生成jar檔案 如何用eclipse生成jar檔案 如何用eclipse生成...

如何用做封面和自動生成目錄,如何用WORD做封面和自動生成目錄?

做封面 開啟文件,開啟 插入 選項卡,找到 封面 選項。單擊後,下拉選單裡就是word提供的各種封面了。選擇一種封面,單擊確定。在編輯區域填上文件標題等資訊,一個精美的封面就搞定啦!自動生成目錄 假設已正確設定頁碼及各種標題。要先在正文裡設定標題或者目錄樣式格式之後,才能提取生成目錄。說簡單也簡單,...

用Python生成excel,如何用Python實現exce

可以使用xlsxwriter 庫實現 如下 import xlsxwriter import sys reload sys 解決中文編碼問題 sys.setdefaultencoding utf 8 建立一個絕對路徑為.test.xlsx的excel檔案workbook xlsxwriter.wor...