SSL必须要使用受ie浏览器添加信任站点信任的么

求各位告诉我的chrome谷歌浏览器除了什么问题... SSL错误_百度知道
求各位告诉我的chrome谷歌浏览器除了什么问题... SSL错误
图所示打些网页现SSL错误我今chrome重装问题别浏览器火狐搜狗些都没问题啊烦透网说需要重新安装证书我试先提问通提高悬赏解决直接加
我有更好的答案
我近遇问题现暂解决办希望用~~~我重新调间清除缓存修改hosts文件都效于google chrome图标右键属性.exe程序菜单页(我叫快捷式)&目标&面块内容添加--ignore-certificate-errors例&C:\Program Files\Google\Chrome\Application\chrome.exe& --ignore-certificate-errors应用关闭再运行google chrome使用望采纳 :)
1、使用goagent翻墙的时候会提示证书过期,这时候需要手动导入证书来解决,具体方法请自行google;如果证书有问题,很可能是有人在中间截获了通信,对方给你发了一个不受浏览器信任的证书。2、时钟设置错误,修改回正常时间重启浏览器即可解决3、有些网站本身是正常的,但受到网络攻击(例如墙),或者你修改了hosts文件,就会出现证书警告。最经典的例子是访问Google的加密连接出现警告,因为可能hosts文件改的IP指向了用于Gmail的服务器,返回了适用Gmail域名下的证书,自然要报警了。
第一点:我手动添加了证书,安装后还是不能进去,说证书或损坏啥的。第三:请问如何恢复原系统的hosts文件呢?谢谢
其他类似问题
为您推荐:
谷歌浏览器的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁SSL 服务器可能需要更新。 mac电脑怎么处理_百度知道
SSL 服务器可能需要更新。 mac电脑怎么处理
SSL 服务器能需要更新些网站进
1、访问系统或者网站SSL证书期需要续期或者更新需要联系服务商2、电脑前间与互联网间同步导致ssl服务风险提示建议校间3、访问系统或者网站能使用安全ssl服务联系服务商4、访问受浏览器信任ssl服务建议更换浏览器5、访问某些自签名ssl需要载根证书比12036
其他类似问题
为您推荐:
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁Android证书信任问题与大表哥 | WooYun知识库
Android证书信任问题与大表哥
1、近期、、遭遇到大规模劫持
2、乌云平台、CVE都收到大量有关Android APP信任所有证书的漏洞
3、老外写有关大表哥的文章中提到MITM时360浏览器不提示证书错误
之前信任证书问题一直都有被提到,但是普遍不受大家重视,因为这个漏洞是利用是需要场景的:MITM(中间人攻击 Man-in-the-middle attack)。一般情况下MITM相对其他攻击是比较少见的,如果有良好的上网习惯如不接入不受信任的网络,那就更少可能受此类攻击了。但是近期发生的MITM据传是在核心骨干网BGP上做了改动所以劫持范围非常之广,真是防不胜防呀,你被劫持了么?
https&&ssl
为了提高网站的安全性,一般会在比较敏感的部分页面采用https传输,比如注册、登录、控制台等。像Gmail、网银、icloud等则全部采用https传输。https/ssl主要起到两个作用:网站认证、内容加密传输和数据一致性。经CA签发的证书才起到认证可信的作用,所有有效证书均可以起到加密传输的作用。
主要在互联网上的用于身份验证的用途。 安全站点在获得CA(Certificate Authority数字证书认证机构)认证后,获得一个数字证书,以此来标识其合法身份的真实性。数字证书主要分为服务器证书和客户端证书。服务器证书(SSL证书)用来进行身份验证和通信的加密,客户端证书主要用于身份验证和电子签名。找CA申请证书是要收费的。
自签名证书
非CA颁发的证书,通过自签名的方式得到的证书。通常Web浏览器会显示一个对话框,询问您是否希望信任一个自签名证书。这个是不用花钱的。
中间人攻击
是指攻击者与通讯的两端分别创建独立的联系,并交换其所收到的数据,使通讯的两端认为他们正在通过一个私密的连接与对方直接对话,但事实上整个会话都被攻击者完全控制。在中间人攻击中,攻击者可以拦截通讯双方的通话并插入新的内容。在许多情况下这是很简单的。
如果自己简单的实现android webview加载网页,如果直接访问可信证书的站点是可以正常显示,但是如果访问自签名的证书的站点就会显示notfound的页面。(写本文时以及.cn处于劫持状态)
logcat会输出网页显示不安全的内容
Web Console:The page displayed insecure content!
功能健全的手机浏览器访问自签名证书的站点会如下提醒
在PC端如果访问自签名证书的站点则会出现如下图左侧的提醒
为解决javax.net.ssl.SSLPeerUnverifiedException: No peer certificate的异常,开发者往往会采用以下的错误解决方案。如此是浏览器应用采用此类解决方案,那么风险就更大了。
覆盖google默认的证书检查机制
implements X509TrustManager
bv(bu parambu) {}
public void checkClientTrusted(X509Certificate[] paramArrayOfX509Certificate, String paramString) {// Do nothing -& accept any certificates}
public void checkServerTrusted(X509Certificate[] paramArrayOfX509Certificate, String paramString) {// Do nothing -& accept any certificates}
public X509Certificate[] getAcceptedIssuers()
信任所有主机名
public static HttpClient getNewHttpClient() {
//获得密匙库
KeyStore trustStore = KeyStore.getInstance(KeyStore.getDefaultType());
trustStore.load(null, null);
SSLSocketFactory sf = new SSLSocketFactoryEx(trustStore);
//信任所有主机名
sf.setHostnameVerifier(SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);
HttpParams params = new BasicHttpParams();
HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1);
HttpProtocolParams.setContentCharset(params, HTTP.UTF_8);
SchemeRegistry registry = new SchemeRegistry();
registry.register(new Scheme("http", PlainSocketFactory.getSocketFactory(), 80));
registry.register(new Scheme("https", sf, 443));
ClientConnectionManager ccm = new ThreadSafeClientConnManager(params, registry);
return new DefaultHttpClient(ccm, params);
} catch (Exception e) {
return new DefaultHttpClient();
empty HostnameVerifier
HostnameVerifier hv = new HostnameVerifier() {
public boolean verify(String hostname, SSLSession session) {
// Always return true -& Accespt any host names
忽略WebView证书错误继续加载
myWebView.setWebViewClient(new WebViewClient(){
public void onReceivedError(WebView view, int errorCode,
String description, String failingUrl) {
// TODO Auto-generated method stub
super.onReceivedError(view, errorCode, description, failingUrl);
public void onReceivedSslError(WebView view,
SslErrorHandler handler, SslError error) {
// TODO Auto-generated method stub
handler.proceed();
其实早在14年2月文中就有提到android平台的app因为覆盖google默认的证书检查机制(X509TrustManager)之后没有对证书进行应有的安全性检查,直接接受了所有异常的https证书,不提醒用户存在安全风险,也不终止这次危险的连接。文中对证书域名检查(HostnameVerifier)部分没有细说。
上文有提到PC版的360浏览器访问被劫持网站居然没有证书错误提示,让人很不敢相信。加上最近android app 证书问题频发,猜想是否有可能一些手机浏览器也会有此类漏洞了。测试过程中发现360手机浏览器、和搜狗浏览器存在此风险。
百度和遨游轻松检测出证书异常
而360和搜狗直接加载进入了被劫持的网站。
反编译查看遨游浏览器的代码,针对证书异常做了处理
而搜狗浏览器则是做了证书信任所有主机名不当处理
关键字:checkServerTrusted、setHostnameVerifier、ALLOW_ALL_HOSTNAME_VERIFIER、X509TrustManager、onReceivedSslError
对主流手机浏览器进行了横向对比,测试对象包括:firefox、chrome、UC浏览器、搜狗浏览器、百度浏览器、360安全浏览器、欧鹏浏览器、遨游云浏览器、猎豹浏览器。
测试方法:手机访问,观察是否有安全提醒。(update:此方法已经无效.)
未做提醒直接加载网页:360安全浏览器、猎豹浏览器、搜狗浏览器
正常做出安全提醒:firefox、chrome、UC浏览器、百度浏览器、欧鹏浏览器、遨游云浏览器
1、非浏览器app,有钱申请ca证书没钱在客户端中添加证书,切勿信任所有证书。
2、浏览器app,严格按照客户端校验服务器证书流程处理:
查看证书是否过期
CA是否可靠
CA的公钥能否正确解开服务器证书的CA数字签名,即证书的签名值
服务器证书上的域名是否和服务器的实际域名相匹配
3、建议使用setHostnameVerifier(SSLSocketFactory.STRICT_HOSTNAME_VERIFIER)
一个SSLSocketFactory的example
java public class SecureSocketFactory extends SSLSocketFactory {
private static final String LOG_TAG = "SecureSocketFactory";
private final SSLContext sslC
private final X509Certificate[] acceptedI
* Instantiate a new secured factory pertaining to the passed store. Be sure to initialize the
* store with the password using
java.security.KeyStore#load(java.io.InputStream,
* char[])} method.
* @param store The key store holding the certificate details
* @param alias The alias of the certificate to use
public SecureSocketFactory(KeyStore store, String alias)
CertificateException,
NoSuchAlgorithmException,
KeyManagementException,
KeyStoreException,
UnrecoverableKeyException {
super(store);
// Loading the CA certificate from store.
final Certificate rootca = store.getCertificate(alias);
// Turn it to X509 format.
InputStream is = new ByteArrayInputStream(rootca.getEncoded());
X509Certificate x509ca = (X509Certificate) CertificateFactory.getInstance("X.509").generateCertificate(is);
AsyncHttpClient.silentCloseInputStream(is);
if (null == x509ca) {
throw new CertificateException("Embedded SSL certificate has expired.");
// Check the CA's validity.
x509ca.checkValidity();
// Accepted CA is only the one installed in the store.
acceptedIssuers = new X509Certificate[]{x509ca};
sslCtx = SSLContext.getInstance("TLS");
sslCtx.init(
new TrustManager[]{
new X509TrustManager() {
public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException {
public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException {
Exception error =
if (null == chain || 0 == chain.length) {
error = new CertificateException("Certificate chain is invalid.");
} else if (null == authType || 0 == authType.length()) {
error = new CertificateException("Authentication type is invalid.");
Log.i(LOG_TAG, "Chain includes " + chain.length + " certificates.");
for (X509Certificate cert : chain) {
Log.i(LOG_TAG, "Server Certificate Details:");
Log.i(LOG_TAG, "---------------------------");
Log.i(LOG_TAG, "IssuerDN: " + cert.getIssuerDN().toString());
Log.i(LOG_TAG, "SubjectDN: " + cert.getSubjectDN().toString());
Log.i(LOG_TAG, "Serial Number: " + cert.getSerialNumber());
Log.i(LOG_TAG, "Version: " + cert.getVersion());
Log.i(LOG_TAG, "Not before: " + cert.getNotBefore().toString());
Log.i(LOG_TAG, "Not after: " + cert.getNotAfter().toString());
Log.i(LOG_TAG, "---------------------------");
// Make sure that it hasn't expired.
cert.checkValidity();
// Verify the certificate's public key chain.
cert.verify(rootca.getPublicKey());
} catch (InvalidKeyException e) {
} catch (NoSuchAlgorithmException e) {
} catch (NoSuchProviderException e) {
} catch (SignatureException e) {
if (null != error) {
Log.e(LOG_TAG, "Certificate error", error);
throw new CertificateException(error);
public X509Certificate[] getAcceptedIssuers() {
return acceptedI
setHostnameVerifier(SSLSocketFactory.STRICT_HOSTNAME_VERIFIER);
public Socket createSocket(Socket socket, String host, int port, boolean autoClose)
throws IOException {
injectHostname(socket, host);
Socket sslSocket = sslCtx.getSocketFactory().createSocket(socket, host, port, autoClose);
// throw an exception if the hostname does not match the certificate
getHostnameVerifier().verify(host, (SSLSocket) sslSocket);
return sslS
public Socket createSocket() throws IOException {
return sslCtx.getSocketFactory().createSocket();
* Pre-ICS Android had a bug resolving HTTPS addresses. This workaround fixes that bug.
* @param socket The socket to alter
* @param host
Hostname to connect to
* @see &a href="/p/android/issues/detail?id=13117#c14"&/p/android/issues/detail?id=13117#c14&/a&
private void injectHostname(Socket socket, String host) {
if (Integer.valueOf(Build.VERSION.SDK) &= 4) {
Field field = InetAddress.class.getDeclaredField("hostName");
field.setAccessible(true);
field.set(socket.getInetAddress(), host);
} catch (Exception ignored) {
用户:使用安全性较好的app
碎银子打赏,作者好攒钱娶媳妇:
好文章,太好啦!!!!
讲的比较细致,通俗易懂,学习了
测试方法:手机访问/,观察是否有安全提醒。此方法已经无效.
qq浏览器有个很不错的功能,一直没舍得升级。。http://www.wooyun.org/bugs/wooyun-
为何不把QQ浏览器放眼里。
标注安全的浏览器,都覆盖了0w&
感谢知乎授权页面模版添加自签发的 SSL 证书为受信任的根证书 | 水景一页
Haoxian Zeng's personal website
您在这里:
添加自签发的 SSL 证书为受信任的根证书
通过 SSL 加密的 HTTPS 连接访问网站时,需要安装并配置一个受信任的 CA ()。平常访问一些加密网站之所以不需要自己安装证书,是因为系统或浏览器已经提前安装了一些受信任机构颁发的证书。但有些时候访问一些组织或个人自己签发证书的网站的时候,就会收到浏览器发出的警告。此时可以将该证书添加到“受信任的根证书颁发机构”存储区,然后就不会再收到安全提示了。
快捷阅读目录
为什么要()呢?因为一些受信任机构颁发的证书年费通常不菲,而且有些时候公司或者组织内部小范围使用的话没有信任问题,这时就可以自己签发一个安全证书。
对于这种安全证书,能否被信任就需要用户自己练就火眼金睛去识别了。比如我签发的证书,我的朋友就多半认为可以被信任,其他人不了解我的话就多半不信任。
在 VPS 上部署了 SSL 服务之后,因为证书(CA)是自己签发的,通过 HTTPS 加密链接访问网站的时候会提示证书不被信任之类的。可以将证书添加到 Windows 证书管理器的“受信任的根证书”目录中,以后 HTTPS 加密访问自己的网站就不会再收到安全提示了。
警告:只有当你确认要安装的安全证书是可以信任的情况下才能安装,否则可能带来严重的安全问题,甚至造成财产损失。下面将介绍如何安装非授权机构发行的安全证书为受信任的根证书。
因为安全证书管理机制不同,下面介绍中涉及到:
Internet Explorer 9 —— 微软系的都差不多,以下简称 IE。
Chrome —— Chrome 版本变动频繁,下面以 21.0.1180.60 版本为例,而且因为 Chrome 使用的就是 Windows 系统里的证书,没有独立的证书存储单元,所以搞定 IE 也就搞定 Chrome 了。从 Chrome 中打开证书管理器的方法是,设置(Settings)——& 高级设置(Advanced Settings)——& HTTPS / SSL ——& 管理证书(Manage Certificates …)。
Firefox —— Firefox 现在版本升级也很快了,好在界面、功能和操作变化不是太大,下面举例用的是 Firefox 15。Firefox 的安全证书管理是独立的,请参考另一篇文章:。
2. 从Windows 自带的浏览器 Internet Explorer 中导入
使用 IE 通过 HTTPS 打开相应网站,会收到如下图所示的安全警告:
Internet Explorer 9 – 证书错误:访问过程中断。提示说“此网站的安全证书有问题”。此时我们可以点击“继续浏览此网站(不推荐)”来继续。
中文显示的是:
此网站的安全证书有问题。
此网站出具的安全证书不是由受信任的证书颁发机构颁发的。
安全证书问题可能显示试图欺骗您或截获您向服务器发送的数据。建议关闭此网页,并且不要继续浏览该网站。
单击此处关闭该网页。
继续浏览此网站(不推荐)。
如果通过单击链接到达此页面,请检查地址栏中的网站以确保该地址是您希望到达的页面。转到如
等网站时,请尝试将 “www” 添加到地址中,变为 。有关详细信息,请参阅 Internet Explorer 帮助中的“证书错误”。
在出现上图所示的证书错误警告时,如果幸运的话,可以在浏览器地址栏的最右边看到红色背景的文字“证书错误”(Certificate Error),如下图所示。
IE 地址栏红色背景的“证书错误”提示,单击“查看证书”后可以直接安装该证书
单击这个错误提示靠下位置的“查看证书(View certificates)”就可以看到该证书的详情,并可以直接安装该证书到 Windows 系统的证书管理器中。如下图所示。
IE 查看证书详情,单击“安装证书”按钮即可开始安装证书
因为是自己签发的安全证书而不是经过认证的机构签发的,所以 Windows 无法自动信任该证书:此 CA 根目录证书不被信任。要启用信任,请将该证书安装到“受信任的根证书颁发机构”存储区。单击“安装证书”按钮即可打开 Windows 证书导入向导,单击“下一步”即可开始安装证书,如下图所示。
证书导入向导
然后系统会询问该证书的存储位置。因为是未经认证的组织或个人自己签发的证书,如果选择让 Windows “根据证书类型,自动选择证书存储”的话,一般会给存储到“中级证书颁发机构”中。以后加密访问该网站的时候还是会收到安全警告。
根据我们的需要 —— 以后打开自己的网站时候不会再发出安全警告,也就是本文的目的,而且又是自己签发的证书,信任不成问题,咱就直接给添加到“受信任的根证书颁发机构”存储中。如下图所示。
Windows 安装安全证书:选择证书存储位置
点选“将所有的证书放入下列存储(P)”,然后单击“浏览(R)”,打开“选择证书存储”窗口来选择。有些时候可能需要选择“显示物理存储区(S)”,然后勾选“受信任的根证书颁发机构”下面的“本地计算机(Local Computer)”来存储。
选择后单击“确定”按钮,然后“下一步”。此时可能会收到安全警告(如下图),提示添加的是“根(root)”证书(信任级别最高)。下图中所示证书就是自己签发的了。
确认添加根证书
剩下的就是确认几次,任务完成!然后关闭浏览器重新打开,就可以试试效果了。
3. 通过 Windows 证书管理器安装
因为 Windows 和 IE 都是微软自家的,管理的是同一个证书管理器。所以不管是从 Windows 系统的证书管理器中导入安装证书,还是直接根据 IE 的提示来安装,效果都是一样的。唯一不同的是,通过 Windows 证书管理器来安装证书的话,需要先将安全证书(.crt 类型的那个文件)保存到本地磁盘。如果不能直接获取该证书,请先看另一篇文章介绍的一节吧。
在 Windows 7 中(via ),要查看或管理证书,必须以管理员身份进行登录,才能执行这些步骤。可以使用“证书管理器”查看有关证书的详细信息,修改、删除这些证书,或者申请新证书。要打开证书管理器:
通过单击“开始”按钮,在“搜索”框中键入 certmgr.msc,然后按 Enter,打开“证书管理器”。? 如果系统提示输入管理员密码或进行确认,则需要键入密码或提供确认。
windows 7 证书管理器(certificates manager)
先展开左边栏里的“受信任的根证书颁发机构”,选中其下的“证书”,然后点击菜单栏的“操作”——&“所有任务”——&“导入”,即可打开证书导入向导。然后就可以接着前面的“证书导入向导”那幅图()开始往下操作了。
另外,在那一步,如果打开详细信息标签页,可以看到有个复制到文件的按钮,单击此按钮即可保存该证书为一个 CA 文件。
4. Chrome 中的安全证书错误提示
因为 Chrome 使用的就是 Windows 系统里的证书,没有独立的证书存储单元,所以搞定 IE 也就搞定 Chrome 了。从 Chrome 中打开证书管理器的方法是,设置(Settings)——& 高级设置(Advanced Settings)——& HTTPS / SSL ——& 管理证书(Manage Certificates …)。
在 Chrome 中遇到网站证书问题时会收到类似下面的错误提示:
该网站的安全证书不受信任!
您尝试访问的是 cnzhx.net,但服务器出示的证书是由您计算机的操作系统不信任的实体所颁发。这可能表明服务器已自行生成了安全凭据,Google Chrome 浏览器认为其中的身份信息不可靠;也可能表明攻击者正试图拦截您的通信内容。
您不应再继续,尤其是如果您以前从未在此网站看到这一警告信息,则更不应继续操作。
返回安全连接
帮助我了解
连接安全网站时,网站所在的服务器会向您的浏览器出示所谓的“证书”,用于验证其身份。这种证书包含网站地址等身份信息,已经过您计算机信任的第三方验证。通过核实证书中的地址是否与网站地址相符,可以证实自己正与所要访问的网站进行安全通信,而不是正与第三方(如您网络中的攻击者)进行通信。这种情况下,证书未经过您计算机信任的第三方进行验证。任何人都可以创建证书,随意声称自己是任何网站,因此必须要由受信任的第三方对证书进行验证。如果未经上述验证,证书中的身份信息就没有意义。因此,您无法验证与自己通信的对象是真正的 cnzhx.net,还是某个自行生成证书,声称自己是 cnzhx.net 的攻击者。您应该就此停止操作。但是,如果您为之工作的组织机构会自行生成证书,而且您要尝试用此类证书连接本组织机构的内部网站,则您可以安全地解决此问题。您可将本组织机构的根证书作为“根证书”导入,由本组织机构颁发或验证的证书随即会得到信任,下次尝试连接内部网站时就不会出现此错误。请联系贵组织机构的支持人员,让他们协助您向计算机中添加新根证书。
本文发表于。永久链接:<>。转载请保留此信息及相应链接。
标签 ,,,,,
订阅 & 关注
近期评论发表在《》[…] CentOS 7 / RHEL 7 上安装 LAMP + phpMyAdmin […]发表在《》谢谢!我因为这几年事情太多,网站都更新少了,还请见谅。发表在《》嗯嗯,看了留言过来的。你的链接也加上了,主要想留个链接常来学习!发表在《》[…] Linode VPS 上 CentOS 7 中改 LAMP 执行方式为 PHP-FPM [...]发表在《》VLC 的确用起来很顺手。

我要回帖

更多关于 浏览器添加可信任站点 的文章

 

随机推荐