當前位置:首頁 » 注冊證書 » 查看pem證書有效期

查看pem證書有效期

發布時間: 2021-01-24 17:19:45

① 如何從pem格式的私鑰文件中讀取私鑰

以下命令來生成密鑰對。

$openssl genrsa -out mykey.pem 2048

$openssl pkcs8 -topk8 -inform PEM -outform PEM -in mykey.pem \
-out private_key.pem -nocrypt

這個命令得到的公共密鑰。
$ openssl rsa -in mykey.pem -pubout -outform DER -out public_key.der

我寫了兩方法讀取私鑰和公鑰

分別。public PrivateKey getPemPrivateKey(String filename, String algorithm) throws Exception {
File f = new File(filename);
FileInputStream fis = new FileInputStream(f);
DataInputStream dis = new DataInputStream(fis);
byte[] keyBytes = new byte[(int) f.length()];
dis.readFully(keyBytes);
dis.close();

String temp = new String(keyBytes);
String privKeyPEM = temp.replace("-----BEGIN PRIVATE KEY-----\n", "");
privKeyPEM = privKeyPEM.replace("-----END PRIVATE KEY-----", "");
//System.out.println("Private key\n"+privKeyPEM);

Base64 b64 = new Base64();
byte [] decoded = b64.decode(privKeyPEM);

PKCS8EncodedKeySpec spec = new PKCS8EncodedKeySpec(decoded);
KeyFactory kf = KeyFactory.getInstance(algorithm);
return kf.generatePrivate(spec);
}

public PublicKey getPemPublicKey(String filename, String algorithm) throws Exception {
File f = new File(filename);
FileInputStream fis = new FileInputStream(f);
DataInputStream dis = new DataInputStream(fis);
byte[] keyBytes = new byte[(int) f.length()];
dis.readFully(keyBytes);
dis.close();

String temp = new String(keyBytes);
String publicKeyPEM = temp.replace("-----BEGIN PUBLIC KEY-----\n", "");
publicKeyPEM = privKeyPEM.replace("-----END PUBLIC KEY-----", "");

Base64 b64 = new Base64();
byte [] decoded = b64.decode(publicKeyPEM);

X509EncodedKeySpec spec =
new X509EncodedKeySpec(decoded);
KeyFactory kf = KeyFactory.getInstance(algorithm);
return kf.generatePublic(spec);
}

② 如何從pem格式私鑰文件中獲取公鑰

Linux 工具通使用 base64 編碼文本格式相關用綴:
* 證書:.crt, .pem
* 私鑰:.key
* 證書請求:.csr
.cer 像二進制證書證書 key 放同專文件邊候擴展名屬通叫 .pemJava keystore 都二進制像自格式

其實類 UNIX 系統關注文件名綴程序並證書、密鑰都明顯標識所相關軟體( openssl)處理管用擴展名亂用擴展名自識別便桌面環境能擴展名與默認操作、圖標關聯起

知道文件啥使用 file 命令識別試試經驗直接拿文本編輯器打看看
-

③ 剛安裝的ssl證書顯示失效

您好!

這是因為您沒有注冊對應域名的SSL證書導致的,請您登陸Gworg,重新辦理自己的域名SSL證書,替換您當前配置的文檔證書就可以使用了:網頁鏈接

④ 如何更改puppetmaster證書默認的使用期限

1、刪除之前的CA
[root@kspupt-ca1 ~]# rm -rf /var/lib/puppet/ssl

備註:刪除之前,你之前簽的所有證書都不可用了哦,慎重!
2、編輯配置文件puppet.conf
[root@kspupt-ca1 ~]# cat /etc/puppet/puppet.conf
[main]
user = puppet
group = puppet
vardir = /var/lib/puppet
confdir = /etc/puppet
logdir = /var/log/puppet
rundir = /var/run/puppet
ssldir = $vardir/ssl
pluginsync = true
privatekeydir = $ssldir/private_keys { group = service }
hostprivkey = $privatekeydir/$certname.pem { mode = 640 }
hostprivkey = $privatekeydir/puppetca.pem { mode = 640 }
autosign = $confdir/autosign.conf { mode = 664 }
[agent]
server = puppetmaster
ca_server = puppetca
classfile = $vardir/classes.txt
localconfig = $vardir/localconfig
runinterval=86400
report = true
authconfig = /etc/puppet/namespaceauth.conf
usecacheonfailure = false
certname = kspupt-ca1
default_scheles = false
masterport = 8140
environment = prd
listen = false
splay = false
noop = false
show_diff = false
configtimeout = 120
[master]
autosign = $confdir/autosign.conf { mode = 664 }
confdir = /etc/puppet
certname = puppetca
ca = true
ca_ttl = 10y #添加這個欄位

3、重新生成CA伺服器
[root@kspupt-ca1 ~]# puppet cert --generate --dns_alt_names puppetca:puppet puppetca
Notice: Signed certificate request for ca
Notice: puppetca has a waiting certificate request
Notice: Signed certificate request for puppetca
Notice: Removing file Puppet::SSL::CertificateRequest puppetca at '/var/lib/puppet/ssl/ca/requests/puppetca.pem'
Notice: Removing file Puppet::SSL::CertificateRequest puppetca at '/var/lib/puppet/ssl/certificate_requests/puppetca.pem'

4、查看現有CA伺服器生成證書的有效期
[root@kspupt-ca1 ~]# openssl x509 -text -noout -in /var/lib/puppet/ssl/certs/ca.pem | grep -i validity -A 2
Validity
Not Before: Oct 20 01:51:00 2014 GMT
Not After : Oct 18 01:51:00 2024 GMT
[root@kspupt-ca1 ~]#

⑤ 製作ssl證書,生成了pem文件以後該怎麼弄

申請SSL證書主要需要經過以下3個步驟:
1.製作CSR文件。
2.CA認證。 3.證書的安裝。 如果不知道怎麼製作,可以咨詢ssl盾客服,

⑥ 怎樣查看SSL證書的有效期

查看方式,打開網頁,查看地址欄的小鎖圖標,點擊查看證書就可以看到有效期。

其它說明:下面我們來簡單的介紹一下怎麼進行查看SSL證書有效期:網頁鏈接

⑦ linux下使用openssl檢測PE文件數字簽名的證書是否有效

第一個坑: 有效期
windows在判斷證書是否有效時不檢測證書的有效期, 即使該證書超過有效期好幾年了, 只要沒有被吊銷, 微軟仍然認為它是有效的. 但在 openssl 提供的 X509_verify_cert 函數會驗證證書的有效期, 因此需要注釋掉驗證有效期的那部分代碼並重新編譯 openssl...
OK, 從 openssl 官網 上下載最新的版本, 好吧, 現在還是剛剛修復 Heartbleed 漏洞的 1.0.1g 版本...
下載, 解壓, 看下 INSTALL 文檔, 先試試可以編譯不:
./config
make

運氣不錯, 不用安裝什麼依賴直接編譯成功. 將代碼根目錄產生的 libcrypto.a 添加到項目中測試下, OK, 可以使用, 下面開始折騰了~
在 crypto/x509/x509_vfy.c 的 153 行找到 X509_verify_cert 函數(在線查看), 局部變數 ok 緩存每一步驗證是否通過, 它依次調用了:
check_issued
check_chain_extensions
check_name_constraints
check_trust
check_revocation
internal_verify
check_policy

其中 internal_verify (在線查看)驗證了證書的有效期, 進入這個函數, 在 1654 行找到這個代碼:
ok = check_cert_time(ctx, xs);
if (!ok)
goto end;

看看 check_cert_time 函數, 確認是檢查 notBefore 和 notAfter, 因此將上面三行代碼注釋掉, 驗證證書時就不會檢測有效期了.
然後就是重新編譯 openssl, 將 libcrypto.a 集成到項目里了~
第二個坑: unhandled critical extension
搜索了下, 在 openssl 官網上找到這個:
-ignore_critical
Normally if an unhandled critical extension is present which is not supported by OpenSSL the certificate is rejected (as required by RFC5280). If this option is set critical extensions are ignored.

原來是當openssl遇到證書中有它不支持的 未處理的關鍵擴展(unhandled critical extension ?) 時, 它會拒絕載入該證書.
再搜索下 -ignore_critical, 在 verify.c 中找到如下代碼片段:
else if (strcmp(*argv,"-ignore_critical") == 0)
vflags |= X509_V_FLAG_IGNORE_CRITICAL;

然後再使用 X509_STORE_set_flags 函數設置標志位:
X509_STORE *ctx;
...
X509_STORE_set_flags(ctx, vflags);

即可.
第三個坑: certificate signature failure
這個坑填不上了, openssl 說:
7 X509_V_ERR_CERT_SIGNATURE_FAILURE: certificate signature failure
the signature of the certificate is invalid.

在windows下導出證書文件, 直接用 openssl 驗證, 在載入證書就會出錯, PEM_read_bio_X509 返回為空....
第四個坑: A certificate was explicitly revoked by its issuer.
A certificate was explicitly revoked by its issuer. 是 Sysinternals 提供的工具sigcheck.exe 的檢測結果, 把文件拎出來一看, 證書真的被撤銷了...
OK, 只好根據證書上的 CRL Distribution Point(CRL 分發點) 提供的 URL 下載 撤銷證書列表 文件, 然後在調用 X509_verify_cert 驗證證書鏈之前, 設置填充被撤銷的證書列表:
X509_CRL *d2i_X509_CRL_fp(FILE *fp, X509_CRL **crl); // 讀取被撤銷的證書列表

STACK_OF(X509_CRL) *sk_X509_CRL_new_null();
#define sk_X509_CRL_push(st, val) SKM_sk_push(X509_CRL, (st), (val)); // sk_X509_CRL_push(STACK_OF(X509_CRL) *crls, X509_CRL *crl);

void X509_STORE_CTX_set0_crls(X509_STORE_CTX *c, STACK_OF(X509_CRL) *sk); // 設置被撤銷的證書列表

同時, 也要設置檢查被撤銷證書列表的標志位 X509_V_FLAG_CRL_CHECK, 然後再調用X509_verify_cert 驗證證書鏈即可.
填了第四個坑後又引起了第五個坑(如何獲取撤銷證書列表)和第六個坑(設置檢測撤銷證書列表的標識位後, 如果該證書沒有撤銷證書列表則直接報錯)...
第五個坑: 獲取撤銷證書列表文件
證書上的 CRL Distribution Point(CRL 分發點) 屬於擴展屬性, 在 PKCS #7: Cryptographic Message Syntax V1.5 上沒有相關介紹.
在 StackOverflow 上找到這個問答 Openssl - How to check if a certificate is revoked or not, 其中第二個回答說 CRL 是在 RFC 5280 中定義的, 除了證書中附帶被撤銷的證書列表以外還有使用 OCSP 協議的, 即使證書撤銷列表也分為使用 URL分發點和 LDAP DNs(???)提供的, 目前先考慮使用 URL 作為 CRL分發點 的情況吧.
然而 openssl 沒有提供直接獲取 CRL 分發點 URL 的API, 那個回答說 Apache 的 mod_ssl 模塊有本地 CRL 和 OCSP 檢測的實現代碼, 但沒有說明哪裡有檢測使用 URL 作為 CRL分發點 的實現方法.
然後又在 frank4dd.com上找到這個代碼 certextensions.c, 他給出了一個如何使用 openssl 從 X.509v3 版本的證書文件中提取擴展內容的示常式序, 太感謝 Frank4DD 這位仁兄了~~~
到這里後, 可以直接使用他的示常式序, 根據關鍵字 Full Name 和 URI 定位 CRL 分發點 的 URL, 也可以看看 openssl 是如何提取這個 URL 的, 然後自己實現一個介面.
如果自作孽使用第二種方法的話, 就編譯個 debug 版的 openssl 庫, 然後調試跟進X509V3_EXT_print 函數, 一步一步的向下走, 直到走到 GENERAL_NAME_print 函數, 這里就是終點了...然後就知道了 CRL 分發點 的 URL 的編號為 6, 也就是 GEN_URI, 直接取結果吧.
第六個坑: CRL有效期
在windows環境下每次查看PE文件的數字簽名時, windows 都會從 CRL分發點 下載吊銷證書列表做驗證,一般來說, 每個 CRL的有效期是非常短的,大概只有5~20 天的有效期吧, 然而我們不可能像 windows 一樣每次查看數字簽名時就從CRL分發點下載最新的吊銷列表.
另外, windows 遇到過期的 CRL 時不會產生證書鏈無效的結果, 但 openssl 在遇到過期的 CRL 時就會導致證書鏈驗證失敗, 因此在載入和驗證 CRL 時, 要忽略 CRL 的有效期.
分析 openssl 源代碼, X509_verify_cert 調用 check_revocation , 之後調用 check_cert , 然後再調用 check_crl , 在這個函數里有檢測 CRL 有效期的代碼:
if (!(ctx->current_crl_score & CRL_SCORE_TIME))
{
ok = check_crl_time(ctx, crl, 1);
if (!ok)
goto err;
}

將其注釋掉即可忽略檢測 CRL 有效期.
第七個坑: CRL 列表為空導致 openssl 認為沒有載入 CRL

9 初始化順序
10 證書名: key_id

⑧ SSL證書過期重新生成時中ca.pem 需要更新么

你用自謙證書么?我用的沃通免費ssl,你可以去問沃通技術支持,可以幫你搞定。

熱點內容
美發店認證 發布:2021-03-16 21:43:38 瀏覽:443
物業糾紛原因 發布:2021-03-16 21:42:46 瀏覽:474
全國著名不孕不育醫院 發布:2021-03-16 21:42:24 瀏覽:679
知名明星確診 發布:2021-03-16 21:42:04 瀏覽:14
ipad大專有用嗎 發布:2021-03-16 21:40:58 瀏覽:670
公務員協議班值得嗎 發布:2021-03-16 21:40:00 瀏覽:21
知名書店品牌 發布:2021-03-16 21:39:09 瀏覽:949
q雷授權碼在哪裡買 發布:2021-03-16 21:38:44 瀏覽:852
圖書天貓轉讓 發布:2021-03-16 21:38:26 瀏覽:707
寶寶水杯品牌 發布:2021-03-16 21:35:56 瀏覽:837