我使用keytool为我的Java应用程序生成了一个自签名证书.但是,当我在浏览器中访问该站点时,它总是弹出一个警告 - 说这个站点没有证书 - 是否有办法自我签署/医生证书,所以我不会在浏览器吗?服务器和浏览器都位于同一主机上,我使用" http:// localhost / " 导航到该站点.我不想在浏览器中添加异常,因为我在大型构建服务器场上运行测试,因此在所有构建计算机上的所有浏览器中添加异常都是过分的.
我的网站包含不受信任的证书(自签名).现在我想下载这个证书.但是,例如,在Chrome中,您只能'继续'或返回(无下载选项).我在Mac上,所以我检查了Keychain访问工具,但它包含很多内容.首先,我不知道证书是否应该在这里,其次,我实际上不知道它是怎么样的.例如,网址是https://example.com:8181/myApp 任何建议如何找到证书?
更新:我刚注意到在Chrome中您可以点击锁定图标上的网址右侧.它显示了一些证书信息,但仍无法下载选项:(

您好,网络上的人,
我遇到了自签名证书的奇怪问题.自从我升级到OSX 10.9(Maverick)后,我无法连接到受自签名SSL证书保护的HTTPS站点.我的计算机上唯一能够做到这一点的浏览器是Firefox(24).Chrome(30)和Safari(7)不能.
您是否遇到过同样的问题?你找到了解决方案吗?
在寻求解决方案时,我发现了这篇文章:http:
//curl.haxx.se/mail/archive-2013-10/0036.html
但是在我看来,这更像是导致问题的webkit常见引擎.Webkit是否有可能变得更加挑剔SSL证书?在哪种情况下,如何生成适合Safari 7和Chrome 30+的cutom?
感谢您提供的任何帮助:)
奥斯卡
在过去的几个月里,我为一个学术项目开发了一个沙箱Java小程序.由于预算有限,我无法使用受信任的证书颁发机构对其进行签名.随着Java 1.7.51的发布,我发现由于缺少签名,新的安全限制禁止执行applet.
到目前为止,我找到了两个解决这个问题的粗略解决方案:
有没有办法克服Java对自签名小程序施加的限制而不要求用户更改安全设置?
我非常感谢你的回答,因为购买可信证书的选择仍然很昂贵.
这是我最近一直在努力解决的一个问题,很大程度上是因为我觉得互联网上关于这个问题的信息几乎没有太大帮助.因为我刚刚找到了一个适合我的解决方案,我决定在这里发布问题和解决方案,希望能让互联网成为那些追随我的人的好地方!(希望这不会导致"无益"的内容!)
我有一个我一直在开发的Android应用程序.直到最近,我一直在使用ServerSockets和Sockets在我的应用程序和我的服务器之间进行通信.但是,通信确实需要是安全的,所以我一直在尝试将它们转换为SSLServerSockets和SSLSockets,这比我预期的要困难得多.
看到它只是一个原型,只使用自签名证书就没有(安全)伤害,这就是我正在做的事情.正如你可能已经猜到的那样,这就是问题所在.这就是我所做的,以及我遇到的问题.
我用以下命令生成了文件" mykeystore.jks ":
keytool -genkey -alias serverAlias -keyalg RSA -keypass MY_PASSWORD -storepass MY_PASSWORD -keystore mykeystore.jks
Run Code Online (Sandbox Code Playgroud)
这是服务器代码:
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.InetAddress;
import javax.net.ssl.SSLServerSocket;
import javax.net.ssl.SSLServerSocketFactory;
import javax.net.ssl.SSLSocket;
/**
* Server
*/
public class simplesslserver {
// Global variables
private static SSLServerSocketFactory ssf;
private static SSLServerSocket ss;
private static final int port = 8081;
private static String address;
/**
* Main: Starts the server and waits for clients to connect. …Run Code Online (Sandbox Code Playgroud) 我一直在尝试使用自签名证书配置在本地服务器上部署的网站,以用于开发目的。我希望我的网站工作的地址是example.company.local。使用SelfSSL生成证书后,将其复制到“个人”和“受信任的证书”根目录下的“本地计算机”存储中。但是,当我尝试访问URL时,出现错误“服务器的证书与URL不匹配”。尽管我可以忽略它,但我知道证书身份验证失败,并且我想解决此问题。我正在列出我遵循的步骤
selfssl /N:CN=example.company.local /V:9999。这会将证书添加到我在本地计算机上的个人存储中请建议我要去哪里错了。我提供的网址是https://example.company.local,但它指向本地主机证书。
*解决*
我的问题是引用以下问题:
Objective-C:如何使用签名者的公钥验证SecCertificateRef?
我们拥有自己的PKI,因此我们信任自己的rootCA.使用此rootCA,我们将签署提供给个人服务器的证书.现在我想连接iOS应用程序并检查从服务器发送的证书是否已使用我们的CA签名.
我的应用程序应该能够使用由此建立的TCP连接连接到具有此证书的n个服务器(可能使用零配置服务找到)GCDAsyncSocket.我在我的应用程序中有公共部分证书,我想添加到我的"CertChain",以便应用程序在连接时信任它们.
我已经尝试了很多,但我仍然无法通过SecTrustEvaluate(trust, &result);有效的结果.(我想在生产中使用它,所以请不要告诉我有关停用验证的任何信息)
我的证书:
在app中:rootCA,
服务器上的oldServerCA(cer)(通过信任):homeServer,oldServer
我的证书链:
rootCA签名homeServer
oldServerCA签名oldServer
我的代码部分:
添加了更新
- (void)socket:(GCDAsyncSocket *)sock didConnectToHost:(NSString *)host port:(uint16_t)port;
{
// Configure SSL/TLS settings
NSMutableDictionary *settings = [NSMutableDictionary dictionaryWithCapacity:3];
// Allow self-signed certificates
[settings setObject:[NSNumber numberWithBool:YES]
forKey:GCDAsyncSocketManuallyEvaluateTrust];
[sock startTLS:settings];
// get the certificates as data for further operations
NSString *certFilePath1 = [[NSBundle mainBundle] pathForResource:@"rootCA" ofType:@"cer"]; // also tried it with 'der', same result
NSData *certData1 = …Run Code Online (Sandbox Code Playgroud) 我正在尝试按照此处记录的方式设置电报机器人 - https://core.telegram.org/bots/api#setwebhook.
我已经尝试了几乎所有东西都使用我自己的自签名证书但是没有成功地使电报调用我传递的URL,即使它返回OK结果
{"ok":true,"result":true,"description":"Webhook was set"}
Run Code Online (Sandbox Code Playgroud)
setWebhook方法和一个PHP curl脚本有没有我没有尝试或想过的事情?
PS:购买经过验证的证书对我来说不是一个选择,我已经尝试了一些免费的ssl提供商startssl(他们不接受我的域名,因为它的结尾.ir没有明智的理由,但在这里不应该相关,对吧?).
我正在从lighttpd服务器https://169.254.128.2:8443提供的API 发出CORS请求https://169.254.128.2:8444。Lighttpd启用了带有以下响应标头的CORS,但在Firefox上未通过OPTIONS请求。
setenv.add-response-header = (
"Access-Control-Allow-Origin" => "*" (tried https://169.254.128.2:8443 too),
"Access-Control-Allow-Headers" => "accept, origin, x-requested-with, content-type, x-transmission-session-id, x-ida-auth-token, content-disposition",
"Access-Control-Expose-Headers" => "X-Transmission-Session-Id",
"Access-Control-Allow-Methods" => "GET, POST, OPTIONS, PUT"
)
Run Code Online (Sandbox Code Playgroud)
我收到错误:MOZILLA_PKIX_ERROR_SELF_SIGNED_CERT。我想知道是否有一种与8444通信的方法,而不是明确接受8444的证书。当我第一次访问url时,我已经接受了8443的证书,https://169.254.128.2:8443并且8444和8443使用相同的证书。该请求可以在Chrome和Safari上正常运行,而无需接受证书。
我有一个带有这些命令的自签名证书链,并在Apache服务器上对其进行了配置
但是当我尝试 openssl s_client -showcerts -servername server -connect my-host.local:443 -CAfile all.crt
我从openssl收到错误 Verify return code: 24 (invalid CA certificate)
用于生成证书的命令或配置文件是否有问题?
# self signed root cert
openssl genrsa -aes256 -out ca.key 4096
openssl req -new -x509 -days 3000 -key ca.key -out ca.crt -config ca.conf
# intermediate cert signed with the root cert
openssl genrsa -aes256 -out int.key 4096
openssl req -new -key int.key -out int.csr -config int.conf
openssl x509 -req -days 3000 -in int.csr -CA ca.crt -CAkey ca.key -set_serial 01 …Run Code Online (Sandbox Code Playgroud)