我想用代码方式查看ca证书到期时间,以下是我的代码,可以显示日期,但是和实际的截止日期不一致
我想用代码方式查看ca证书到期时间,以下是我的代码,可以显示日期,但是和实际的截止日期不一致
希望各位大牛帮忙看一下问题出在哪,多谢啦
import java.io.*;
import java.security.cert.CertificateException;
import java.security.cert.CertificateFactory;
import java.security.cert.X509Certificate;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.TimeZone;
public class CertificateRemind {
public static X509Certificate x509Certificate = null;
public static Process process = null;
public static void MessageRemind(String url,int port){
Runtime runtime = Runtime.getRuntime();
try {
String connect = "openssl s_client -connect " + url + ":" + port;
process = runtime.exec(connect);
CertificateFactory certificateFactory = CertificateFactory.getInstance("X.509");
x509Certificate = (X509Certificate) certificateFactory.generateCertificate(process.getInputStream());
System.out.print((x509Certificate.getNotAfter().getTime()-new Date().getTime())/(24*60*60*1000)+"天");
long date = x509Certificate.getNotAfter().getTime();
SimpleDateFormat simpleDateFormat = new SimpleDateFormat();
simpleDateFormat.setTimeZone(TimeZone.getTimeZone("Asia/Shanghai"));
System.out.println(simpleDateFormat.format(date));
} catch (IOException e) {
e.printStackTrace();
} catch (CertificateException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
CertificateRemind.MessageRemind("***.***.***",443);
}
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
解决了吗老铁,我遇到同样的问题,同样的闹心
这些大公司的网站通常不止一张证书, 有的有很多,不同的连接方式你可能收到的证书不一样,你可以查看证书签名和频发机构,是不一样的.