Openssl Keytool自簽發證書

2021-07-03 22:06:26 字數 1831 閱讀 1631

以下以生成乙個別名(alias)為jetty,根證書為ca.crt,授權證書為server.crt為例。

keytool -genkey -alias jetty -keyalg rsa -keystore my_keystore
經過以上操作,在產生的my_keystore中包含了乙個自簽發的證書和其金鑰。用my_keystore即可在伺服器端和客戶端之間進行https協議互動。

openssl req -new -x509 -keyout ca.key -out ca.crt
在生成在生產環境中需要使用的根證書時,所有選項務必認真填寫

準備工作

1.在ca證書坐在目錄中新建目錄democa、democa/newcerts

mkdir -p democa/newcerts
2.在democa中建立乙個空檔案

touch democa/index.txt
3.在democa中建立乙個文字檔案serial, 並在其中輸入』01』

echo '01' > democa/serial
步驟

要生成乙個ca簽發的證書之前1之前,需要產生乙個交給ca簽發的生成證書簽名請求csr。這個需要用前面生成的keystore來生成,然後交給ca簽名。具體步驟為:

1.生成keypair金鑰對

keytool -genkey -alias -keyalg rsa -keystore
請注意其中的cn域(common name)要和伺服器網域名稱保持一致

2.生成證書簽名請求

keytool certreq -alias jetty -file server.csr -validity 3650 -keyalg rsa -keystore my_keystore
其中的validity為證書要有效期

3.用ca私鑰進行簽名,或者到權威機構申請ca簽名

openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key -notext -policy policy_anything
以上步驟的引數可以視情況而定,但請注意,第3步中的-policy policy_anything需要加上,否則會因為ca中一些選項的編碼和server.csr中一些編碼不同而無法簽發證書

以上生成的證書就可以用於伺服器的身份驗證,如果是jetty搭建伺服器,需要將生成的證書匯入到keystore。

匯入證書到keystore:

1.匯入信任的ca分證書到keystore

keytool -import -v trustcacerts -alias ca -file ca.crt -keystore my_keystore
2.匯入簽名後的server證書到keystore

keytool -import -v trustcacerts -alias server -file server.crt -keystore my_keystore
如果要在瀏覽器中訪問自己的伺服器,在瀏覽器中將ca.crt新增到「受信任的根證書頒發機構」就不會再收到瀏覽器的安全警告了!^_^

ca可以是乙個目前受信任的根證書頒發機構,也可以是我們自己製造的乙個根證書頒發機構 ↩

自增「 」和自減「 」

int x 10 int j j x 看這邊 system.out.println x int x 10 int j x x 看這邊 system.out.println x 第乙個會輸出11,第二個會輸出10。這是今天偶然看到的,而這個解釋聽起來比較容易理解 x 是乙個表示式,它的值是x,在這個表...

正解自增 自減

許多語言都有自增 自減運算子。下面以c語言為例,將此類運算子的運算特徵正解一下 一 先看字尾 b 2 a b 計算過程 1.先計算表示式b 的值,結果為2 即將b自增前的值作為表示式b 的值 2.再將表示式b 的值賦值給a,即a得到2 3.最後將b自增後的值賦值給b,即b為3 注意 在此過程中,沒有...

MySQL 自聯結 自連線

例如想於下方表中找出與在 愛藝奇 公司的客戶同名的顧客。第一步 找出在 愛藝奇 的客戶的姓名,第二步 從全表中去查詢姓名與第一步查詢出來一樣的客戶 where cust name in in 不能寫成 不然容易報錯。因為子查詢有可能返回的是多條記錄。這跟子查詢只能返回單列無關,單列與單行。子查詢 s...