小编Jan*_*Jan的帖子

通过HTTPS/SSL的Java客户端证书

我正在使用Java 6,并尝试HttpsURLConnection使用客户端证书创建针对远程服务器.
服务器使用自签名根证书,并要求提供受密码保护的客户端证书.我已将服务器根证书和客户端证书添加到我在/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home/lib/security/cacerts(OSX 10.5)中找到的默认java密钥库中.密钥库文件的名称似乎表明客户端证书不应该进入那里?

无论如何,将根证书添加到这个商店解决了臭名昭着的问题 javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed' problem.

但是,我现在仍然坚持如何使用客户端证书.我尝试了两种方法,并没有让我到任何地方.
首先,首选,尝试:

SSLSocketFactory sslsocketfactory = (SSLSocketFactory) SSLSocketFactory.getDefault();
URL url = new URL("https://somehost.dk:3049");
HttpsURLConnection conn = (HttpsURLConnection)url.openConnection();
conn.setSSLSocketFactory(sslsocketfactory);
InputStream inputstream = conn.getInputStream();
// The last line fails, and gives:
// javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure
Run Code Online (Sandbox Code Playgroud)

我试过跳过HttpsURLConnection类(不理想,因为我想与服务器谈论HTTP),而是这样做:

SSLSocketFactory sslsocketfactory = (SSLSocketFactory) SSLSocketFactory.getDefault();
SSLSocket sslsocket = (SSLSocket) sslsocketfactory.createSocket("somehost.dk", 3049);
InputStream inputstream = sslsocket.getInputStream();
// do anything with the inputstream results in:
// java.net.SocketTimeoutException: Read timed out
Run Code Online (Sandbox Code Playgroud)

我甚至不确定客户端证书是否存在问题.

java ssl jsse sslhandshakeexception

114
推荐指数
5
解决办法
38万
查看次数

正则表达式匹配多行文本块

在匹配跨越多行的文本时,我在使用Python正则表达式时遇到了一些麻烦.示例文本是('\n'是换行符)

some Varying TEXT\n
\n
DSJFKDAFJKDAFJDSAKFJADSFLKDLAFKDSAF\n
[more of the above, ending with a newline]\n
[yep, there is a variable number of lines here]\n
\n
(repeat the above a few hundred times).
Run Code Online (Sandbox Code Playgroud)

我想捕获两件事:'some_Varying_TEXT'部分,以及在一次捕获中位于其下方两行的大写文本的所有行(我可以稍后删除换行符).我试过几种方法:

re.compile(r"^>(\w+)$$([.$]+)^$", re.MULTILINE) # try to capture both parts
re.compile(r"(^[^>][\w\s]+)$", re.MULTILINE|re.DOTALL) # just textlines
Run Code Online (Sandbox Code Playgroud)

并且有很多变化没有运气.最后一个似乎逐个匹配文本行,这不是我真正想要的.我可以抓住第一部分,没问题,但我似乎无法捕捉4-5行的大写文本.我想match.group(1)是some_Varying_Text,group(2)是line1 + line2 + line3 +等,直到遇到空行.

如果有人好奇,它应该是构成蛋白质的氨基酸序列.

python regex multiline

86
推荐指数
4
解决办法
23万
查看次数

标签 统计

java ×1

jsse ×1

multiline ×1

python ×1

regex ×1

ssl ×1

sslhandshakeexception ×1