我正在尝试使用SSL支持设置rabbitmq。但是,连接客户端收到错误以及日志中出现的错误:
=ERROR REPORT==== 7-Aug-2015::07:44:48 ===
STOMP detected network error on <0.11577.0> (172.31.80.14:50841 -> 172.23.115.104:61614):
{ssl_upgrade_failure,
{{{badmatch,
{error,
{asn1,
{'Type not compatible with table constraint',
{{component,'Type'},
{value,{5,<<>>}},
{unique_name_and_value,id,{1,2,840,113549,1,1,11}}}}}}},
[{public_key,pkix_decode_cert,2},
{ssl_cipher,filter,2},
{ssl_handshake,select_session,8},
{ssl_handshake,hello,4},
{ssl_connection,hello,2},
{ssl_connection,next_state,3},
{gen_fsm,handle_msg,7},
{proc_lib,init_p_do_apply,3}]},
{gen_fsm,sync_send_all_state_event,[<0.11578.0>,start,5000]}}}
我们正在使用我们使用openssl工具链创建的证书以及我们也创建的ca证书。
我的知识有点简短,但我相信证书已正确生成。我意识到erlang版本已经过时了,我已经启用了使其不安全的配置属性,但我无法访问更新的RHEL版本。
[
{rabbit,
{tcp_listeners, [5672]},
{ssl_listeners, [5671]},
{ssl_allow_poodle_attack, true},
{ssl_options, [
{cacertfile, "/etc/httpd/ssl/ca.crt"},
{certfile,"/etc/httpd/ssl/vitel-asl.crt"},
{keyfile, "/etc/httpd/ssl/vitel-asl.key"},
{verify, verify_peer},
{ssl_cert_login_from, common_name},
{fail_if_no_peer_cert, true}]
},
{rabbitmq_stomp, [
{ssl_listeners, [61614]}
]}
}
].
-----BEGIN CERTIFICATE-----
MIIE5jCCAs4CCQDhrk7+xXC1CjANBgkqhkiG9w0BAQsFADA1MRwwGgYDVQQDExNB
c3RlcmlzayBQcml2YXRlIENBMRUwEwYDVQQKEwxNTUkgSG9sZGluZ3MwHhcNMTUw
ODA1MDkwNjAyWhcNMTYwODA0MDkwNjAyWjA1MRwwGgYDVQQDExNBc3RlcmlzayBQ
cml2YXRlIENBMRUwEwYDVQQKEwxNTUkgSG9sZGluZ3MwggIiMA0GCSqGSIb3DQEB
AQUAA4ICDwAwggIKAoICAQCuSEbXZbTcd6HKz5l3V2CdkTHOpYxYbhjR1Yhsp4q1
DNY20YSD5UcsgrrwsXwUgjVDj0EhCPv4cZ8ae7RbuIBpTyG0LZtdy/W6fvREHjbG
+7BtbkRBY2PoV351Q0YP/rRs3fmjdreiJ5wHWqbU46EUtrtUmJgOTRRrxnfbweq0
Hxf1ScWworTRgMJ7z6V6rth0e5Z0N/qi2JLuHeoIpY8419d4ZYfgo3/X75b6+vS7
QlkpmTLyLMnI+SSPVv7h+qh7xo1Scm/urN9vHtBPloCFVJbYhW4rSomV8rmgN8il
Bymr9muSHmGa2CY0viMDdec5htUCaq4ABrCaX+2r0rDGw9OImRQXli6pcAWAog4F
g03eNVokBA+eW8SKwZgPZWJdVYbB77P5eJW/ewzhOnKQsomayy9qQF6L4+JjpY75
GfPPw1gMqrLaFbXeUo0e6YOqGkiYgxKJlF40VhBT/fYJeA8TrZIc75x9zrkg3p8u
1eJTFblrjUoEnlyxxy+s31WJJs575kKXMa6j6XEktRK6VaORALGCILAf4D4qjshA
5v95CLJrMQ9gdUKQnpD0k7qmoqKlUjyj8A79+btxbB45EJJfuzwOSdZ2XsX/N+UH
I7cwmFubZT8sawMtMquaJLSqWvMD6/wh2PDOigWa6LEkbgXQ9Xvf0yNl2oRQeiRL
IwIDAQABMA0GCSqGSIb3DQEBCwUAA4ICAQCPi054wa63XI41tl9JqfBSNYQQYKID
lj0H099zIG1QPWRt9wt5C//PHfZAUdRuFf/Qb7TL8YptqMDuMlPVma3I5KszCOiq
W5z/S/OOj0tI3rjstr46bbV6Nlo/eag6kUSGrLQgbXr0Zq7JNmJn8SNjKrjnNw0g
9X0BcXB9pABT/SJ6sVCg0IyT8vMfa6rUMQelbENIS6ibIFM/lAezggDz8nIEMQe4
X7AFsUcmAITApN79IDJf4S7ZyroClXL6wxnmnhQD6YLlR2rQGrzzE+pXsFKFPopr
sfixVniwAAUJtYx+nfTebIwK9RrOZ3n+ViXbgD7cE6ArkxwItl+iLr3T5+yOz27l
8vALfBEC5DXjCF4swySNSuNxq8IKSV1k87U3nnD4L8+eEyyJ+4OZbAIjdVe9gEF5
D2h6x9G2ZN7Dn52ysVwn8is0uqYbPBSMKJnTYxmdQO7MEFCc+FQrVvsjJanGkUbn
ogCCRLIC9lE1lYCkY9JOSlzCQYwmhzy0dLEokwJcxOFKqWgympHUMO/K7t0UH3xw
rL556Jb5U1XHFoGm5HCn4DPrCl08b8fGQHa/Fc3krtx7UULNbIEvve/eQRbF+MzR
Ym6Kujr3a3WPom2gmudgT6Eu5kJSIhnIqBnaeNzL+rwel3kQE8Jbhhc52ZKkqlav
3yPO14z2RLrqgA==
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIDXTCCAUUCAQEwDQYJKoZIhvcNAQELBQAwNTEcMBoGA1UEAxMTQXN0ZXJpc2sg
UHJpdmF0ZSBDQTEVMBMGA1UEChMMTU1JIEhvbGRpbmdzMB4XDTE1MDgwNTA5MDYw
OFoXDTE2MDgwNDA5MDYwOFowODEfMB0GA1UEAxMWY3B0bHRhcDgwLnphLm1oZ2Fk
LmNvbTEVMBMGA1UEChMMTU1JIEhvbGRpbmdzMIGfMA0GCSqGSIb3DQEBAQUAA4GN
ADCBiQKBgQDgd4WbTWYtWB3rAByUUzWTOeJe0zGspUIY0gg9NH8GBbZeIcCuSr+C
jR+oKcc9aBoeqg15i1/x8P5fMnVBfYQYUr2Bna5rqQIXu80lg9frcd69ZnGXnJIG
lhYJpUarAVgC3CYJI4CtgPP2mFBMbo66J8KYh57iQJIYfJ/tcfd6jwIDAQABMA0G
CSqGSIb3DQEBCwUAA4ICAQAbpTWu9kUkCusxFz4oHKZNv6qml2Q35Saeed0H909M
ozoZa4LgP6+WzvKiGyVMufo4UEgXNJRfjsETlwTR9+YGSd/J4AinBxwdtgnQXnQt
8SBNOESLpEwTjVYaMD9BCNfN/ze0PSs4O/AlbXW1POXzej0WmPyC4a1R4haQqolO
wbY8aBm6PJz3oD2D1pQuB7KPfYjGEdH+c1cMxP5JdJ9KeFGziayDGYyHOEr6lz53
lOHMuc/iG4UDCGwIqDFfoocdLXhewu/yJW8SFy1g5uyt2T7cDE6v2Qy9NzMRcxaO
GQgzMwNZdS+B4PgSY2opzfn9T/vEu263jv9mxw/ExS0+NjRRLXo6UYbdm6hI1ePj
RzMtJEFrVlPUsFjvOGfyHNy0ibScSumOyCWIrOLs0X3ZHlYvK43r+h09Lnxm4kOb
Vho1ksAnKTw8uOK/soEp83QdyiMlZI4Mr2lYY3KxV6VfKOABNCMXwh/oWAxt3ccL
1/fhcU5WlBIIVsnWZEbFv57kajl65fqxhoEKxN4VjV2cK2vZJ48Ctl4n0CgVottT
b1eZ4bIyig6aVe38iHVS8I8gEcAx4cA8EfxmxVtRL1fZegPcQqS1DP6TE5cD6ifH
givUhHSrMHlP5iPnvSYBEdvshIm3SCwUjwnTHU/eoYrtejyRnyxxQSVJF6N7T1Yz
jw==
-----END CERTIFICATE-----
-----BEGIN RSA PRIVATE KEY-----
MIICXQIBAAKBgQDgd4WbTWYtWB3rAByUUzWTOeJe0zGspUIY0gg9NH8GBbZeIcCu
Sr+CjR+oKcc9aBoeqg15i1/x8P5fMnVBfYQYUr2Bna5rqQIXu80lg9frcd69ZnGX
nJIGlhYJpUarAVgC3CYJI4CtgPP2mFBMbo66J8KYh57iQJIYfJ/tcfd6jwIDAQAB
AoGAY6Xr1EQKBjtGHNtR1K8T66YYzovnU4OR0j77lWBGu7+xdBx702QvnJ9V3Guf
na0nW1GW5cxv7ZJU+qIF1+sGxoiuHluRxUmR4wvr5KWIpyr5FOf+oXo/Ce/rk7/+
FSIMHDY2Eb9ICZAiUtD+lI1Yv5HXOX12YvJweXQtAKTYiTECQQDwFWy4bwMkWHl/
2EI4sym0+83MmGLB73tnJPzhpu8yrvLBIIvswLvSvqv5yXWgGY6SVwZjEkZUB92O
E4CnSDwFAkEA71kOkBtXmDiq+hibaQOGfPxHP27vnYMYHkxMj6h80onk871s1fHB
xuG6KYWlesRjk2OxWxZCD4e28KyESVz0gwJBAJXP2LLR2vUQHGjxSolVCz57LjVw
FZgM10VKqF4qq/JFhweKRqYqsklUX74Tv0lzCSs6EKs7mRUQf2kLtGkuQv0CQQCj
AgozBwwfNejsL7oYSThdAwwbHZi/s7rHV7uE04E/en6dqdLn2qDYrH83LDhJZltS
1EDEAmK3ZPyo6TWnKVG1AkBz1AH/UgxEPPDjq4Fger0yjkogRo3d1DdwbFz0ek+C
fZXfTDSkYf+D46QwAU0++i8Jh+3YXTSPfTwfhXQyhO1K
-----END RSA PRIVATE KEY-----
答案 0 :(得分:0)
我有一个类似的问题,我使用RabbitMQ 3.3.4和Erlang R14B04和CA SHA256证书。为了让服务器运行,我不得不升级到Erlang 18.3和RabbitMQ 3.6.2。我有客户消费者试图使用不支持SHA-256证书的SSLv3。
我的配置如下:
[
{ssl, [{versions, ['tlsv1.2', 'tlsv1.1', 'tlsv1']}]},
{rabbit, [
{ssl_listeners, [5671]},
{ssl_options, [{cacertfile,"/home/rabbitmq/cert/cacert.cer"},
{certfile,"/home/rabbitmq/cert/server.cer"},
{keyfile,"/home/rabbitmq/cert/server_private.pem"},
{versions, ['tlsv1.2', 'tlsv1.1', tlsv1]},
{ciphers, ["ECDHE-ECDSA-AES256-GCM-SHA384","ECDHE-RSA-AES256-GCM-SHA384",
"ECDHE-ECDSA-AES256-SHA384","ECDHE-RSA-AES256-SHA384",
"ECDH-ECDSA-AES256-GCM-SHA384","ECDH-RSA-AES256-GCM-SHA384",
"ECDH-ECDSA-AES256-SHA384","ECDH-RSA-AES256-SHA384",
"DHE-RSA-AES256-GCM-SHA384","DHE-DSS-AES256-GCM-SHA384",
"DHE-RSA-AES256-SHA256","DHE-DSS-AES256-SHA256","AES256-GCM-SHA384",
"AES256-SHA256","ECDHE-ECDSA-AES128-GCM-SHA256",
"ECDHE-RSA-AES128-GCM-SHA256","ECDHE-ECDSA-AES128-SHA256",
"ECDHE-RSA-AES128-SHA256","ECDH-ECDSA-AES128-GCM-SHA256",
"ECDH-RSA-AES128-GCM-SHA256","ECDH-ECDSA-AES128-SHA256",
"ECDH-RSA-AES128-SHA256","DHE-RSA-AES128-GCM-SHA256",
"DHE-DSS-AES128-GCM-SHA256","DHE-RSA-AES128-SHA256","DHE-DSS-AES128-SHA256",
"AES128-GCM-SHA256","AES128-SHA256","ECDHE-ECDSA-AES256-SHA",
"ECDHE-RSA-AES256-SHA","DHE-RSA-AES256-SHA","DHE-DSS-AES256-SHA",
"ECDH-ECDSA-AES256-SHA","ECDH-RSA-AES256-SHA","AES256-SHA",
"ECDHE-ECDSA-DES-CBC3-SHA","ECDHE-RSA-DES-CBC3-SHA","EDH-RSA-DES-CBC3-SHA",
"EDH-DSS-DES-CBC3-SHA","ECDH-ECDSA-DES-CBC3-SHA","ECDH-RSA-DES-CBC3-SHA",
"DES-CBC3-SHA","ECDHE-ECDSA-AES128-SHA","ECDHE-RSA-AES128-SHA",
"DHE-RSA-AES128-SHA","DHE-DSS-AES128-SHA","ECDH-ECDSA-AES128-SHA",
"ECDH-RSA-AES128-SHA","AES128-SHA","EDH-RSA-DES-CBC-SHA","DES-CBC-SHA"]},
{honor_cipher_order, true},
{fail_if_no_peer_cert, false}]}
]}
].
要获得Erlang支持的密码套件,您可以运行:
rabbitmqctl eval 'ssl:cipher_suites(openssl).'
对于有类似问题的其他人的旁注,您还可以检查公钥和私钥,以确保通过执行以下操作来使用正确的密钥:
# openssl x509 -in ssl.crt -pubkey -noout > from_crt.pub
# openssl rsa -in ssl.key -pubout > from_key.pub
# diff from_crt.pub from_key.pub
**如果你使用正确的密钥,你的差异应该是空的。
查看https://www.rabbitmq.com/ssl.html Rabbit有关SSL的信息。