add support for ssl connections
This adds preliminary support for SSL connections to a RabbitMQ server. Instead of providing two clients (QAmqpClient/QAmqpSslClient), the SSL support was directly rolled into QAmqpClient itself, providing signals/slots to deal with errors (sslErrors/ignoreSslErrors), and the ability to assign a QSslConfiguration. Travis testing for ssl support is currently disabled, pending a solution to a travis limitation for starting ssl listeners
This commit is contained in:
parent
d051f5a445
commit
31d8affc84
|
|
@ -8,7 +8,7 @@ services:
|
||||||
before_install:
|
before_install:
|
||||||
- sudo pip install cpp-coveralls
|
- sudo pip install cpp-coveralls
|
||||||
install:
|
install:
|
||||||
- tests/test-deps.sh
|
- tests/files/travis/test-deps.sh
|
||||||
script:
|
script:
|
||||||
- qmake -config gcov
|
- qmake -config gcov
|
||||||
- make
|
- make
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
#include <QTimer>
|
#include <QTimer>
|
||||||
#include <QTcpSocket>
|
|
||||||
#include <QTextStream>
|
#include <QTextStream>
|
||||||
#include <QStringList>
|
#include <QStringList>
|
||||||
|
#include <QSslSocket>
|
||||||
#include <QtEndian>
|
#include <QtEndian>
|
||||||
|
|
||||||
#include "qamqpglobal.h"
|
#include "qamqpglobal.h"
|
||||||
|
|
@ -21,6 +21,7 @@ QAmqpClientPrivate::QAmqpClientPrivate(QAmqpClient *q)
|
||||||
autoReconnect(false),
|
autoReconnect(false),
|
||||||
timeout(0),
|
timeout(0),
|
||||||
connecting(false),
|
connecting(false),
|
||||||
|
useSsl(false),
|
||||||
socket(0),
|
socket(0),
|
||||||
closed(false),
|
closed(false),
|
||||||
connected(false),
|
connected(false),
|
||||||
|
|
@ -50,7 +51,7 @@ void QAmqpClientPrivate::init()
|
||||||
void QAmqpClientPrivate::initSocket()
|
void QAmqpClientPrivate::initSocket()
|
||||||
{
|
{
|
||||||
Q_Q(QAmqpClient);
|
Q_Q(QAmqpClient);
|
||||||
socket = new QTcpSocket(q);
|
socket = new QSslSocket(q);
|
||||||
QObject::connect(socket, SIGNAL(connected()), q, SLOT(_q_socketConnected()));
|
QObject::connect(socket, SIGNAL(connected()), q, SLOT(_q_socketConnected()));
|
||||||
QObject::connect(socket, SIGNAL(disconnected()), q, SLOT(_q_socketDisconnected()));
|
QObject::connect(socket, SIGNAL(disconnected()), q, SLOT(_q_socketDisconnected()));
|
||||||
QObject::connect(socket, SIGNAL(readyRead()), q, SLOT(_q_readyRead()));
|
QObject::connect(socket, SIGNAL(readyRead()), q, SLOT(_q_readyRead()));
|
||||||
|
|
@ -58,6 +59,8 @@ void QAmqpClientPrivate::initSocket()
|
||||||
q, SLOT(_q_socketError(QAbstractSocket::SocketError)));
|
q, SLOT(_q_socketError(QAbstractSocket::SocketError)));
|
||||||
QObject::connect(socket, SIGNAL(error(QAbstractSocket::SocketError)),
|
QObject::connect(socket, SIGNAL(error(QAbstractSocket::SocketError)),
|
||||||
q, SIGNAL(socketError(QAbstractSocket::SocketError)));
|
q, SIGNAL(socketError(QAbstractSocket::SocketError)));
|
||||||
|
QObject::connect(socket, SIGNAL(sslErrors(QList<QSslError>)),
|
||||||
|
q, SIGNAL(sslErrors(QList<QSslError>)));
|
||||||
}
|
}
|
||||||
|
|
||||||
void QAmqpClientPrivate::setUsername(const QString &username)
|
void QAmqpClientPrivate::setUsername(const QString &username)
|
||||||
|
|
@ -87,12 +90,13 @@ void QAmqpClientPrivate::parseConnectionString(const QString &uri)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (connectionString.scheme() != AMQP_SCHEME &&
|
if (connectionString.scheme() != AMQP_SCHEME &&
|
||||||
connectionString.scheme() != AMQP_SSCHEME) {
|
connectionString.scheme() != AMQP_SSL_SCHEME) {
|
||||||
qAmqpDebug() << Q_FUNC_INFO << "invalid scheme: " << connectionString.scheme();
|
qAmqpDebug() << Q_FUNC_INFO << "invalid scheme: " << connectionString.scheme();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
port = connectionString.port(AMQP_PORT);
|
useSsl = (connectionString.scheme() == AMQP_SSL_SCHEME);
|
||||||
|
port = connectionString.port((useSsl ? AMQP_SSL_PORT : AMQP_PORT));
|
||||||
host = connectionString.host();
|
host = connectionString.host();
|
||||||
|
|
||||||
QString vhost = connectionString.path();
|
QString vhost = connectionString.path();
|
||||||
|
|
@ -116,7 +120,11 @@ void QAmqpClientPrivate::_q_connect()
|
||||||
_q_disconnect();
|
_q_disconnect();
|
||||||
}
|
}
|
||||||
|
|
||||||
socket->connectToHost(host, port);
|
qAmqpDebug() << "connecting to host: " << host << ", port: " << port;
|
||||||
|
if (useSsl)
|
||||||
|
socket->connectToHostEncrypted(host, port);
|
||||||
|
else
|
||||||
|
socket->connectToHost(host, port);
|
||||||
}
|
}
|
||||||
|
|
||||||
void QAmqpClientPrivate::_q_disconnect()
|
void QAmqpClientPrivate::_q_disconnect()
|
||||||
|
|
@ -777,6 +785,29 @@ QString QAmqpClient::errorString() const
|
||||||
return d->errorString;
|
return d->errorString;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QSslConfiguration QAmqpClient::sslConfiguration() const
|
||||||
|
{
|
||||||
|
Q_D(const QAmqpClient);
|
||||||
|
return d->sslConfiguration;
|
||||||
|
}
|
||||||
|
|
||||||
|
void QAmqpClient::setSslConfiguration(const QSslConfiguration &config)
|
||||||
|
{
|
||||||
|
Q_D(QAmqpClient);
|
||||||
|
d->sslConfiguration = config;
|
||||||
|
|
||||||
|
if (!config.isNull()) {
|
||||||
|
d->useSsl = true;
|
||||||
|
d->port = AMQP_SSL_PORT;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void QAmqpClient::ignoreSslErrors(const QList<QSslError> &errors)
|
||||||
|
{
|
||||||
|
Q_D(QAmqpClient);
|
||||||
|
d->socket->ignoreSslErrors(errors);
|
||||||
|
}
|
||||||
|
|
||||||
void QAmqpClient::connectToHost(const QString &uri)
|
void QAmqpClient::connectToHost(const QString &uri)
|
||||||
{
|
{
|
||||||
Q_D(QAmqpClient);
|
Q_D(QAmqpClient);
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,8 @@
|
||||||
#include <QObject>
|
#include <QObject>
|
||||||
#include <QUrl>
|
#include <QUrl>
|
||||||
#include <QHostAddress>
|
#include <QHostAddress>
|
||||||
|
#include <QSslConfiguration>
|
||||||
|
#include <QSslError>
|
||||||
|
|
||||||
#include "qamqpglobal.h"
|
#include "qamqpglobal.h"
|
||||||
|
|
||||||
|
|
@ -68,6 +70,9 @@ public:
|
||||||
QAMQP::Error error() const;
|
QAMQP::Error error() const;
|
||||||
QString errorString() const;
|
QString errorString() const;
|
||||||
|
|
||||||
|
QSslConfiguration sslConfiguration() const;
|
||||||
|
void setSslConfiguration(const QSslConfiguration &config);
|
||||||
|
|
||||||
// channels
|
// channels
|
||||||
QAmqpExchange *createExchange(int channelNumber = -1);
|
QAmqpExchange *createExchange(int channelNumber = -1);
|
||||||
QAmqpExchange *createExchange(const QString &name, int channelNumber = -1);
|
QAmqpExchange *createExchange(const QString &name, int channelNumber = -1);
|
||||||
|
|
@ -85,6 +90,10 @@ Q_SIGNALS:
|
||||||
void disconnected();
|
void disconnected();
|
||||||
void error(QAMQP::Error error);
|
void error(QAMQP::Error error);
|
||||||
void socketError(QAbstractSocket::SocketError error);
|
void socketError(QAbstractSocket::SocketError error);
|
||||||
|
void sslErrors(const QList<QSslError> &errors);
|
||||||
|
|
||||||
|
public Q_SLOTS:
|
||||||
|
void ignoreSslErrors(const QList<QSslError> &errors);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
QAmqpClient(QAmqpClientPrivate *dd, QObject *parent = 0);
|
QAmqpClient(QAmqpClientPrivate *dd, QObject *parent = 0);
|
||||||
|
|
|
||||||
|
|
@ -5,11 +5,8 @@
|
||||||
#include <QSharedPointer>
|
#include <QSharedPointer>
|
||||||
#include <QPointer>
|
#include <QPointer>
|
||||||
#include <QAbstractSocket>
|
#include <QAbstractSocket>
|
||||||
|
#include <QSslConfiguration>
|
||||||
#ifndef QT_NO_SSL
|
#include <QSslError>
|
||||||
# include <QSslConfiguration>
|
|
||||||
# include <QSslError>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include "qamqpglobal.h"
|
#include "qamqpglobal.h"
|
||||||
#include "qamqpauthenticator.h"
|
#include "qamqpauthenticator.h"
|
||||||
|
|
@ -19,7 +16,7 @@
|
||||||
#define METHOD_ID_ENUM(name, id) name = id, name ## Ok
|
#define METHOD_ID_ENUM(name, id) name = id, name ## Ok
|
||||||
|
|
||||||
class QTimer;
|
class QTimer;
|
||||||
class QTcpSocket;
|
class QSslSocket;
|
||||||
class QAmqpClient;
|
class QAmqpClient;
|
||||||
class QAmqpQueue;
|
class QAmqpQueue;
|
||||||
class QAmqpExchange;
|
class QAmqpExchange;
|
||||||
|
|
@ -85,8 +82,9 @@ public:
|
||||||
bool autoReconnect;
|
bool autoReconnect;
|
||||||
int timeout;
|
int timeout;
|
||||||
bool connecting;
|
bool connecting;
|
||||||
QTcpSocket *socket;
|
bool useSsl;
|
||||||
|
|
||||||
|
QSslSocket *socket;
|
||||||
QHash<quint16, QList<QAmqpMethodFrameHandler*> > methodHandlersByChannel;
|
QHash<quint16, QList<QAmqpMethodFrameHandler*> > methodHandlersByChannel;
|
||||||
QHash<quint16, QList<QAmqpContentFrameHandler*> > contentHandlerByChannel;
|
QHash<quint16, QList<QAmqpContentFrameHandler*> > contentHandlerByChannel;
|
||||||
QHash<quint16, QList<QAmqpContentBodyFrameHandler*> > bodyHandlersByChannel;
|
QHash<quint16, QList<QAmqpContentBodyFrameHandler*> > bodyHandlersByChannel;
|
||||||
|
|
@ -103,27 +101,11 @@ public:
|
||||||
QAMQP::Error error;
|
QAMQP::Error error;
|
||||||
QString errorString;
|
QString errorString;
|
||||||
|
|
||||||
|
QSslConfiguration sslConfiguration;
|
||||||
|
|
||||||
QAmqpClient * const q_ptr;
|
QAmqpClient * const q_ptr;
|
||||||
Q_DECLARE_PUBLIC(QAmqpClient)
|
Q_DECLARE_PUBLIC(QAmqpClient)
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#ifndef QT_NO_SSL
|
|
||||||
class QAmqpSslClient;
|
|
||||||
class QAmqpSslClientPrivate : public QAmqpClientPrivate
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
QAmqpSslClientPrivate(QAmqpSslClient *q);
|
|
||||||
|
|
||||||
virtual void initSocket();
|
|
||||||
virtual void _q_connect();
|
|
||||||
|
|
||||||
// private slots
|
|
||||||
void _q_sslErrors(const QList<QSslError> &errors);
|
|
||||||
|
|
||||||
QSslConfiguration sslConfiguration;
|
|
||||||
|
|
||||||
};
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif // QAMQPCLIENT_P_H
|
#endif // QAMQPCLIENT_P_H
|
||||||
|
|
|
||||||
|
|
@ -3,13 +3,14 @@
|
||||||
|
|
||||||
#include <QMetaType>
|
#include <QMetaType>
|
||||||
|
|
||||||
#define AMQP_SCHEME "amqp"
|
#define AMQP_SCHEME "amqp"
|
||||||
#define AMQP_SSCHEME "amqps"
|
#define AMQP_SSL_SCHEME "amqps"
|
||||||
#define AMQP_PORT 5672
|
#define AMQP_PORT 5672
|
||||||
#define AMQP_HOST "localhost"
|
#define AMQP_SSL_PORT 5671
|
||||||
#define AMQP_VHOST "/"
|
#define AMQP_HOST "localhost"
|
||||||
#define AMQP_LOGIN "guest"
|
#define AMQP_VHOST "/"
|
||||||
#define AMQP_PSWD "guest"
|
#define AMQP_LOGIN "guest"
|
||||||
|
#define AMQP_PSWD "guest"
|
||||||
|
|
||||||
#define AMQP_FRAME_MAX 131072
|
#define AMQP_FRAME_MAX 131072
|
||||||
#define AMQP_FRAME_MIN_SIZE 4096
|
#define AMQP_FRAME_MIN_SIZE 4096
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,7 @@
|
||||||
|
<RCC>
|
||||||
|
<qresource prefix="/certs">
|
||||||
|
<file alias="ca-cert.pem">../../files/certs/testca/cacert.pem</file>
|
||||||
|
<file alias="client-cert.pem">../../files/certs/client/cert.pem</file>
|
||||||
|
<file alias="client-key.pem">../../files/certs/client/key.pem</file>
|
||||||
|
</qresource>
|
||||||
|
</RCC>
|
||||||
|
|
@ -4,3 +4,4 @@ include($${DEPTH}/tests/tests.pri)
|
||||||
|
|
||||||
TARGET = tst_qamqpclient
|
TARGET = tst_qamqpclient
|
||||||
SOURCES = tst_qamqpclient.cpp
|
SOURCES = tst_qamqpclient.cpp
|
||||||
|
RESOURCES = certs.qrc
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,11 @@
|
||||||
#include <QtTest/QtTest>
|
#include <QtTest/QtTest>
|
||||||
#include "qamqptestcase.h"
|
|
||||||
|
|
||||||
#include <QProcess>
|
#include <QProcess>
|
||||||
#include "qamqpclient.h"
|
#include <QSslKey>
|
||||||
#include "qamqpclient_p.h"
|
|
||||||
|
#include "qamqptestcase.h"
|
||||||
#include "qamqpauthenticator.h"
|
#include "qamqpauthenticator.h"
|
||||||
|
#include "qamqpclient_p.h"
|
||||||
|
#include "qamqpclient.h"
|
||||||
|
|
||||||
class tst_QAMQPClient : public TestCase
|
class tst_QAMQPClient : public TestCase
|
||||||
{
|
{
|
||||||
|
|
@ -20,11 +21,34 @@ private Q_SLOTS:
|
||||||
void validateUri_data();
|
void validateUri_data();
|
||||||
void validateUri();
|
void validateUri();
|
||||||
|
|
||||||
private:
|
public Q_SLOTS: // temporarily disabled
|
||||||
void autoReconnect();
|
void autoReconnect();
|
||||||
|
void sslConnect();
|
||||||
|
|
||||||
|
private:
|
||||||
|
QSslConfiguration createSslConfiguration();
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
QSslConfiguration tst_QAMQPClient::createSslConfiguration()
|
||||||
|
{
|
||||||
|
QList<QSslCertificate> caCerts =
|
||||||
|
QSslCertificate::fromPath(QLatin1String(":/certs/ca-cert.pem"));
|
||||||
|
QList<QSslCertificate> localCerts =
|
||||||
|
QSslCertificate::fromPath(QLatin1String(":/certs/client-cert.pem"));
|
||||||
|
QFile keyFile( QLatin1String(":/certs/client-key.pem"));
|
||||||
|
keyFile.open(QIODevice::ReadOnly);
|
||||||
|
QSslKey key(&keyFile, QSsl::Rsa, QSsl::Pem, QSsl::PrivateKey);
|
||||||
|
keyFile.close();
|
||||||
|
|
||||||
|
QSslConfiguration sslConfiguration;
|
||||||
|
sslConfiguration.setCaCertificates(caCerts);
|
||||||
|
sslConfiguration.setLocalCertificate(localCerts.first());
|
||||||
|
sslConfiguration.setPrivateKey(key);
|
||||||
|
sslConfiguration.setProtocol(QSsl::SecureProtocols);
|
||||||
|
return sslConfiguration;
|
||||||
|
}
|
||||||
|
|
||||||
void tst_QAMQPClient::connect()
|
void tst_QAMQPClient::connect()
|
||||||
{
|
{
|
||||||
QAmqpClient client;
|
QAmqpClient client;
|
||||||
|
|
@ -42,6 +66,17 @@ void tst_QAMQPClient::connect()
|
||||||
QVERIFY(waitForSignal(&client, SIGNAL(disconnected())));
|
QVERIFY(waitForSignal(&client, SIGNAL(disconnected())));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void tst_QAMQPClient::sslConnect()
|
||||||
|
{
|
||||||
|
QAmqpClient client;
|
||||||
|
client.setSslConfiguration(createSslConfiguration());
|
||||||
|
QObject::connect(&client, SIGNAL(sslErrors(QList<QSslError>)),
|
||||||
|
&client, SLOT(ignoreSslErrors(QList<QSslError>)));
|
||||||
|
|
||||||
|
client.connectToHost();
|
||||||
|
QVERIFY(waitForSignal(&client, SIGNAL(connected())));
|
||||||
|
}
|
||||||
|
|
||||||
void tst_QAMQPClient::connectProperties()
|
void tst_QAMQPClient::connectProperties()
|
||||||
{
|
{
|
||||||
QAmqpClient client;
|
QAmqpClient client;
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,18 @@
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIC5zCCAc+gAwIBAgIBAjANBgkqhkiG9w0BAQUFADATMREwDwYDVQQDEwhNeVRl
|
||||||
|
c3RDQTAeFw0xNDA4MjcxOTI2MDVaFw0xNTA4MjcxOTI2MDVaMCoxFzAVBgNVBAMM
|
||||||
|
Dm1icm9hZHN0LWJ1aWxkMQ8wDQYDVQQKDAZjbGllbnQwggEiMA0GCSqGSIb3DQEB
|
||||||
|
AQUAA4IBDwAwggEKAoIBAQDrzmzjgxNXxXX+fgfjB5Pt+YbO2uQR9PDADUyk+8Kw
|
||||||
|
/v1xjZBqKSHaBJLMv2nHlfGM8p92XQoepWKtG4z49UsT6MMppfUnZ/TO6LgUuJtw
|
||||||
|
FaVYdJmzK8SPvsQ331id9f4grgMTiff+i6hM2Bb9Jq83/jnglrBm8T4KHjPjJXQi
|
||||||
|
MN8d7ZkV2bo2vFQcO/KNTODntqINp5+OFPboyjDbMoMgUTqnXJBQsWwA9EVq2JYs
|
||||||
|
FYtA5xsqk0yG9DBgI5ClfxESQQo6lHKYeX2KIuHVO5awPpm+wZbIeR3l5QFqQrQZ
|
||||||
|
zfw7ANsA1RK4c85jb8K0vHxX1wV3kB+2kqpi4jxm/ucnAgMBAAGjLzAtMAkGA1Ud
|
||||||
|
EwQCMAAwCwYDVR0PBAQDAgeAMBMGA1UdJQQMMAoGCCsGAQUFBwMCMA0GCSqGSIb3
|
||||||
|
DQEBBQUAA4IBAQAxoTOMViXAKveeYx7I0dve/Te3TXe6XTlF0iFNIMp0FB3X0OeA
|
||||||
|
Bjknf6SUxY4qYV9DsFBGtXg8irkbothVNQKrhSedb6n+OQGy5z24oJ+vWW5jCyf3
|
||||||
|
TBoWRLnHY52j/4KElNpbEddacreYY6Ft5VYLZuyXy2G18xWjUnE5EG+QkizgAWzw
|
||||||
|
w9aTxS7qyGb7/FklJhH5OA8izi4JNbIrLEcUw4ECgYihtdLnZz/ANTp4kwz7qjaj
|
||||||
|
X7+8V3h7R59/HOHglCbjtkhBVuRyz5ljTfMbCava4Za2solujAo4tRxvmhioog0t
|
||||||
|
QplQjUP4QM5jfFlD/1HXY2SzYPG0FIiRj93L
|
||||||
|
-----END CERTIFICATE-----
|
||||||
|
|
@ -0,0 +1,27 @@
|
||||||
|
-----BEGIN RSA PRIVATE KEY-----
|
||||||
|
MIIEpAIBAAKCAQEA685s44MTV8V1/n4H4weT7fmGztrkEfTwwA1MpPvCsP79cY2Q
|
||||||
|
aikh2gSSzL9px5XxjPKfdl0KHqVirRuM+PVLE+jDKaX1J2f0zui4FLibcBWlWHSZ
|
||||||
|
syvEj77EN99YnfX+IK4DE4n3/ouoTNgW/SavN/454JawZvE+Ch4z4yV0IjDfHe2Z
|
||||||
|
Fdm6NrxUHDvyjUzg57aiDaefjhT26Mow2zKDIFE6p1yQULFsAPRFatiWLBWLQOcb
|
||||||
|
KpNMhvQwYCOQpX8REkEKOpRymHl9iiLh1TuWsD6ZvsGWyHkd5eUBakK0Gc38OwDb
|
||||||
|
ANUSuHPOY2/CtLx8V9cFd5AftpKqYuI8Zv7nJwIDAQABAoIBAQDj32PSqIQ0uZlB
|
||||||
|
CcHNXzFRM2VW2Ki1waI1taRveuu153Q8G7WHIaCY8vp56i/qs7ftoTkARQDWhLRK
|
||||||
|
3OjqXQDkiHaw9LNoFUm5+aKKQ6vSMNjMFkHBp3YYAx3TcH5Oh73BDufiJd4FmihV
|
||||||
|
uizdDlkdHwwHQRfPIyn01SMHStZjgkOqIOkKq1Me8uggiYpTh/2sbX931cwxJnSF
|
||||||
|
EvDOLTvLjJdj6aWjupUaMvMsZDHJdtTZxl/YPV/KO49EkaOz0Ijv4mD8a0FQ5QRa
|
||||||
|
ud1xITFlFXOeZNjH3n6/+4ypIJDkXddpfZUuetoZ3DPRZY5aalKW+SGy3zqLu8qh
|
||||||
|
0VGPRQ7BAoGBAP7xNXis1ErCybdI1wvo3XIcsq7YHsssD+2IFmNomdBF5e9QzAwU
|
||||||
|
Q63WD6qmcLCSzjSm4dYZNvFL9RLWUCIkC7nkpqt0bftDw//NTdyinJo/JNf4Lprx
|
||||||
|
uji5njju+FuU83Whu3QoBXFTv7Ql09bX/6EgCfx1cWrJEHC6L3oGE3SpAoGBAOzI
|
||||||
|
5BfC+5TTbqWbjoH8ycdpjbEvyhpRKT920spa2j0kNjduryJHtq1AemLsR9NOH67h
|
||||||
|
cO5YHD9ClRMXxI4ogVbzOGqVAy3LdYXCJIV8GO/WTjjDINoPNb2+VfaHCkboS+8y
|
||||||
|
d1HwwcFbK7p3dJFNF3ppDVXsTfZZzDAQfFqa6A9PAoGAPzmYtjW+bFAEcJT65/Q3
|
||||||
|
Pv6I/b2RXXeu94yBaOPfCXzcOk6CXBiGdE0bE4o1dkTiKMKeTVdxfcQFokdOFjl0
|
||||||
|
QwTGpMy6Hc8/g2fqAGa/ia1RONJO1JRQR5MY/yucojG9cxXKBFOMjf9kEowzDhwB
|
||||||
|
RHdKoraJix8UGbDC53MsTgkCgYBepze23/Td219ByFtBTyICGwnPKMFrn8ITYpaE
|
||||||
|
2aigBFe/9PkBhRVbUIkb/kQADhzQNcKFJKe2ChG5niiugzag4X1N7d9lcQ27uI4M
|
||||||
|
5jy5szt1qVr6kFX1UZ7fe7/59GZWaiAUm194wc9LLPFmHCEkh9YS4PGRZvgexphP
|
||||||
|
R9k4NQKBgQDXYokjEt6jl67724/J8gP09oTAxZCBSweZkTHErUg8NdsUJWqBGLP9
|
||||||
|
zFg1pOfAV9gy/qKm01SdG81lWcf8sDLa3QjB4WOW6x99DH2mQ7y69tStn8B3mAVB
|
||||||
|
o8Ddf50gjv54oSqFPrF1DAbBXWOEWfeLM44zyaBR9t28bNBJM4CEiQ==
|
||||||
|
-----END RSA PRIVATE KEY-----
|
||||||
Binary file not shown.
|
|
@ -0,0 +1,16 @@
|
||||||
|
-----BEGIN CERTIFICATE REQUEST-----
|
||||||
|
MIICbzCCAVcCAQAwKjEXMBUGA1UEAwwObWJyb2Fkc3QtYnVpbGQxDzANBgNVBAoM
|
||||||
|
BmNsaWVudDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOvObOODE1fF
|
||||||
|
df5+B+MHk+35hs7a5BH08MANTKT7wrD+/XGNkGopIdoEksy/aceV8Yzyn3ZdCh6l
|
||||||
|
Yq0bjPj1SxPowyml9Sdn9M7ouBS4m3AVpVh0mbMrxI++xDffWJ31/iCuAxOJ9/6L
|
||||||
|
qEzYFv0mrzf+OeCWsGbxPgoeM+MldCIw3x3tmRXZuja8VBw78o1M4Oe2og2nn44U
|
||||||
|
9ujKMNsygyBROqdckFCxbAD0RWrYliwVi0DnGyqTTIb0MGAjkKV/ERJBCjqUcph5
|
||||||
|
fYoi4dU7lrA+mb7Blsh5HeXlAWpCtBnN/DsA2wDVErhzzmNvwrS8fFfXBXeQH7aS
|
||||||
|
qmLiPGb+5ycCAwEAAaAAMA0GCSqGSIb3DQEBCwUAA4IBAQAyDAY1l3GDSkLXOKId
|
||||||
|
GM0sB0Ve7tT64IsqFacp29wV15fgJH1368VOMwxiXRQVSvGQGWog0JzuX0qH12ZZ
|
||||||
|
+6zQnGhumuKtoqfwlPBFNtvFRFxQ61Dzk6RZaO5fC7ZW+cLrfcEjTh9X3ts2POwP
|
||||||
|
/iuFdr+r+422YDOmHY3gNKBYKg8MtaDUNSLSiwNEQ/CPNs3FsyObHutiMPgIKwqt
|
||||||
|
vZ2hkvvMWcYPf2dtPTS3AfMPWVP+zR4eDfeiKYoxCyYZHsvQEyYqP5P5U1elqia1
|
||||||
|
gR9WUuC6Li+7wju6ksFrrLKGPNDXvfOm3Ecqfc5JPgU+U4bJLFRT1CFEOuYRnViK
|
||||||
|
V/jK
|
||||||
|
-----END CERTIFICATE REQUEST-----
|
||||||
|
|
@ -0,0 +1,18 @@
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIC5zCCAc+gAwIBAgIBATANBgkqhkiG9w0BAQUFADATMREwDwYDVQQDEwhNeVRl
|
||||||
|
c3RDQTAeFw0xNDA4MjcxOTI0MjNaFw0xNTA4MjcxOTI0MjNaMCoxFzAVBgNVBAMM
|
||||||
|
Dm1icm9hZHN0LWJ1aWxkMQ8wDQYDVQQKDAZzZXJ2ZXIwggEiMA0GCSqGSIb3DQEB
|
||||||
|
AQUAA4IBDwAwggEKAoIBAQDDV2SFR4wdqcGTJjXoxufcRcg1QPBrsglR2rvQL40i
|
||||||
|
oF9U9QAASwtn5c1+A5pkEdOb6xOrND/qiCW1jQgBKzi9qMnL9+61Z/Xykq5Op4qj
|
||||||
|
oqf1l6DV5nyHo9DOmqMKlBUGFR1PvwRcxmtl76+ekLxRP3Z38YbJHj1FT2H/9Dno
|
||||||
|
ThoImcxiSeMI1T7yBfv5SZ4TVheRIabkRcwT5FrU3P6TkVJq2PBjH4n6cNlLAMka
|
||||||
|
Ias4Jnxip4Xg/kk9JXlfce45EAMlgEpp/6zSYQqvpESo/2elElP39sFBPvv7HNIh
|
||||||
|
si7AKzIsFlEpsUFlcBkC1SD9jxV2xVbXZssCiX3ZM5F1AgMBAAGjLzAtMAkGA1Ud
|
||||||
|
EwQCMAAwCwYDVR0PBAQDAgUgMBMGA1UdJQQMMAoGCCsGAQUFBwMBMA0GCSqGSIb3
|
||||||
|
DQEBBQUAA4IBAQCHXuSqK4vEDNIqZxMQiFqB4zwkz5KG3uZrbhqfHaqxxjinwlNJ
|
||||||
|
Sky9lAx2QN/sRDuk8M+8HZxRMsASIPzELMjjj19CduadkLFV4cj+0nP2m6K1li8y
|
||||||
|
RyGQpEwQi5MG2o+iQt3Ygw07KQJYhOXaifjEFJ8Q1U00KO+e9H7iLF8GrhLzmOv3
|
||||||
|
usLPIvE8dnNu+EkrC57c48g9vkzR+BWl4TA1TcJBy9r219Z4jGrIysPWJUPwhKJj
|
||||||
|
tf9Uk9oHbMkuv5Qc+NhCumkB82phIt5WxeL1mKgwKVxiZJ+4DysfD7cgni8jhq86
|
||||||
|
KZgEOMel6CekBa7ToLzUdvjU0SjT2DBBK6YD
|
||||||
|
-----END CERTIFICATE-----
|
||||||
|
|
@ -0,0 +1,27 @@
|
||||||
|
-----BEGIN RSA PRIVATE KEY-----
|
||||||
|
MIIEogIBAAKCAQEAw1dkhUeMHanBkyY16Mbn3EXINUDwa7IJUdq70C+NIqBfVPUA
|
||||||
|
AEsLZ+XNfgOaZBHTm+sTqzQ/6ogltY0IASs4vajJy/futWf18pKuTqeKo6Kn9Zeg
|
||||||
|
1eZ8h6PQzpqjCpQVBhUdT78EXMZrZe+vnpC8UT92d/GGyR49RU9h//Q56E4aCJnM
|
||||||
|
YknjCNU+8gX7+UmeE1YXkSGm5EXME+Ra1Nz+k5FSatjwYx+J+nDZSwDJGiGrOCZ8
|
||||||
|
YqeF4P5JPSV5X3HuORADJYBKaf+s0mEKr6REqP9npRJT9/bBQT77+xzSIbIuwCsy
|
||||||
|
LBZRKbFBZXAZAtUg/Y8VdsVW12bLAol92TORdQIDAQABAoIBAFKRwEWuBoYLWW2P
|
||||||
|
uz3Xxe4P+R65gmajbNkSsky/rNK0I1fP794v2nRiaMgZUct21ZGUfk3h2hqSzg29
|
||||||
|
vWJxGJzimdoDxP0dIpMUeWV54FpmyMRBAZUoxf63ue164+v2yCQ4DJnGzltA6+i8
|
||||||
|
tek6mL9nKfZtO2ILzC5d7bi5TTjp/SXUiKG3VAFSxgxoBC9PGlL7BNFbm9JXSket
|
||||||
|
LVIWNj781pqBMEHvj9aLVG0uKpkY5jRjShHQ1a1v3l/WSDBsoVaG8xzvZSE5wd7s
|
||||||
|
Fjzk53siyzapOBhTCJc8NFoA88SfYYQfxCVrhIxpDhH6rYBMi/j99DTlj+Goi6eo
|
||||||
|
7aqEkwECgYEA7YwtwqGtPbakc5Y6shmLyniDah8xaVfrK4duGBvuoZCMek+ee2DN
|
||||||
|
WaeUKcSBBL0wWGVxnTm5MHleeadc92vF8eI/T7LKDnqPGfg9I9nteI43wCuRqKbz
|
||||||
|
YDseZnngBWFM6QnhYJrL1mH66zTAolaW8e+4U0ZsNO/Wk3RP8FrZDFUCgYEA0oPp
|
||||||
|
DIW+6i43dC9AOKxPv6lWdYOHnnh050WftR3sYfQ5FEqLln0jbio1WvaukQtPeruz
|
||||||
|
WhhAYbrkSjy1286NMjkhO3FbofiUkTgpI9YSubIchbGcem9G58IfhA41mAGzrGer
|
||||||
|
t65ip6f2jwOZkRM+t5/65iqQuGoCIWlnBpO3kKECgYB6mX6ElSz0TO9TOJXSlZyw
|
||||||
|
QsKQYsj9tYKKVLtddg0TFadq+OyygKN7QiIV7HUqHPp2pOSeYMxTWFCKOPaiO91N
|
||||||
|
mZdTatMd5eM1ZAkqF6+YKM5dQB9NC91QLTLjcMNOA4nOPGs1kK7jVm5KNk+1eTsu
|
||||||
|
YqqfUBlIuP/l2oHnavvagQKBgFPIYiE0vbXwLOvVvmaP1bF/EMT2Uyxz3nsJD7YC
|
||||||
|
sciObYUw4ftD1K0MqW2JjhJ2AOzk9U2fJ0h+HEube/l+bF2XtS02QXTmPSLKyjzT
|
||||||
|
/2HejFF9TbzAuuSUMvzYtuXHj53HKOWSxvrY810Z3q2JjkWAq1edizmKH0zy6SkJ
|
||||||
|
813hAoGAIGMMqi8HsqsvgTQebYohwkRBG+G+JPVF6rPD/+WfglnIoo4sNWNBnh6Z
|
||||||
|
e/+TkLsZR0QVnbQtStabroxxCkBkjzoDgu2Ff2mKhcFMsuNwWm/2hWHD8VLMomWi
|
||||||
|
7BK4OjVcBxOoQelmBEuwIaCiuADZBFgGEbV5yBdv8yD+ewUP/Z0=
|
||||||
|
-----END RSA PRIVATE KEY-----
|
||||||
Binary file not shown.
|
|
@ -0,0 +1,16 @@
|
||||||
|
-----BEGIN CERTIFICATE REQUEST-----
|
||||||
|
MIICbzCCAVcCAQAwKjEXMBUGA1UEAwwObWJyb2Fkc3QtYnVpbGQxDzANBgNVBAoM
|
||||||
|
BnNlcnZlcjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMNXZIVHjB2p
|
||||||
|
wZMmNejG59xFyDVA8GuyCVHau9AvjSKgX1T1AABLC2flzX4DmmQR05vrE6s0P+qI
|
||||||
|
JbWNCAErOL2oycv37rVn9fKSrk6niqOip/WXoNXmfIej0M6aowqUFQYVHU+/BFzG
|
||||||
|
a2Xvr56QvFE/dnfxhskePUVPYf/0OehOGgiZzGJJ4wjVPvIF+/lJnhNWF5EhpuRF
|
||||||
|
zBPkWtTc/pORUmrY8GMfifpw2UsAyRohqzgmfGKnheD+ST0leV9x7jkQAyWASmn/
|
||||||
|
rNJhCq+kRKj/Z6USU/f2wUE++/sc0iGyLsArMiwWUSmxQWVwGQLVIP2PFXbFVtdm
|
||||||
|
ywKJfdkzkXUCAwEAAaAAMA0GCSqGSIb3DQEBCwUAA4IBAQB3B0Rve1QC6ygBlbFj
|
||||||
|
jYSwmyIID3OYuF4RvXGIzCQsh8+aJYWe4dMUcqRLlr13PmWQlle5v5F3x903Y5QN
|
||||||
|
IeQudApEelqJMI0QLOKALZWgX5YjF+z0AW/yhAu3QufEsERG4T5x2BJVKcrSIewl
|
||||||
|
ang2Hr4isGmlXS/VVPYa0K50lv7GgHsCookOSS52/MA7r5f48EmJeC2JO0sKKKkf
|
||||||
|
sMY9urBAIeGYNvXw/JuswlnfMpuUGEBoGnByc+3SecXiHGaUBn3xXSsbL+Ht8x9D
|
||||||
|
Sa0gyGqelTqxhcOU0YcvorxIPb6Jbms2J8GEmeq25vMlRTlDKJV01F7PMo/1reXU
|
||||||
|
KEn6
|
||||||
|
-----END CERTIFICATE REQUEST-----
|
||||||
Binary file not shown.
|
|
@ -0,0 +1,17 @@
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIICxjCCAa6gAwIBAgIJAOZK1btq1p0yMA0GCSqGSIb3DQEBBQUAMBMxETAPBgNV
|
||||||
|
BAMTCE15VGVzdENBMB4XDTE0MDgyNzE5MjI0MloXDTE1MDgyNzE5MjI0MlowEzER
|
||||||
|
MA8GA1UEAxMITXlUZXN0Q0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
|
||||||
|
AQC/T4RhynLiTGkcgfq6TVwKVtvRy2jAOFOG7p9g4NofVTa0HvEUjNITwPUrYQDa
|
||||||
|
OLSK6BtStss1aTeSDfkY9wejl1PZ02lgz2CeznOvWp/74Rz8Mjc7BGz3WFOqcfJt
|
||||||
|
6DyTj/wgE/lJXTVGXsojQtDChYwEPNSWmAXLz1nLj2Ac1B4uy5kVsBCXkhWcu4E8
|
||||||
|
xEaf6mIA9KvF1MWBgHkNbZ2DruYsdlA4h95+40wn2qDkm9RgmE2MyFjV8YYjwv2s
|
||||||
|
5G48+pj7o7Vg/3/QZFuoGnU8GJ4gFFVOQQRqKOUrVFrJGduiVXxqPNjTt1rfopX4
|
||||||
|
pC8GZ69NotARfrwlBflM+Dm/AgMBAAGjHTAbMAwGA1UdEwQFMAMBAf8wCwYDVR0P
|
||||||
|
BAQDAgEGMA0GCSqGSIb3DQEBBQUAA4IBAQAJxWhxMpYywwJOkB243RhD76Y9OJ0q
|
||||||
|
RAboh03wrHpx5jgRZj4PxJrMdoDop/7mP9e/2UfIWVkVzKGH3ZPSrDaJ7bRooqgu
|
||||||
|
nR1T8yWm+/zDoKoZGl+pdc25rr+PcWbzXOuPZTukSM01AqgGuwmiRB70HzqJpV3u
|
||||||
|
IPLvkvrqUIcjpdi7ULmfB1caNzTMizviTK7b3ORG+pZUVMRmOzSkJOD1PoNXg7GQ
|
||||||
|
p5FisMP7ULL0RLtOMrqwwyCslMJ+8g9pJuCqNJEeoBQsh/lmEZANWTSYTPRIbQAM
|
||||||
|
cnhx6GDsER2zvDoTLLM4SXqWEXHsV5D06Z41fKXIDSgsSZVnzb6ZWxvd
|
||||||
|
-----END CERTIFICATE-----
|
||||||
|
|
@ -0,0 +1,18 @@
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIC5zCCAc+gAwIBAgIBATANBgkqhkiG9w0BAQUFADATMREwDwYDVQQDEwhNeVRl
|
||||||
|
c3RDQTAeFw0xNDA4MjcxOTI0MjNaFw0xNTA4MjcxOTI0MjNaMCoxFzAVBgNVBAMM
|
||||||
|
Dm1icm9hZHN0LWJ1aWxkMQ8wDQYDVQQKDAZzZXJ2ZXIwggEiMA0GCSqGSIb3DQEB
|
||||||
|
AQUAA4IBDwAwggEKAoIBAQDDV2SFR4wdqcGTJjXoxufcRcg1QPBrsglR2rvQL40i
|
||||||
|
oF9U9QAASwtn5c1+A5pkEdOb6xOrND/qiCW1jQgBKzi9qMnL9+61Z/Xykq5Op4qj
|
||||||
|
oqf1l6DV5nyHo9DOmqMKlBUGFR1PvwRcxmtl76+ekLxRP3Z38YbJHj1FT2H/9Dno
|
||||||
|
ThoImcxiSeMI1T7yBfv5SZ4TVheRIabkRcwT5FrU3P6TkVJq2PBjH4n6cNlLAMka
|
||||||
|
Ias4Jnxip4Xg/kk9JXlfce45EAMlgEpp/6zSYQqvpESo/2elElP39sFBPvv7HNIh
|
||||||
|
si7AKzIsFlEpsUFlcBkC1SD9jxV2xVbXZssCiX3ZM5F1AgMBAAGjLzAtMAkGA1Ud
|
||||||
|
EwQCMAAwCwYDVR0PBAQDAgUgMBMGA1UdJQQMMAoGCCsGAQUFBwMBMA0GCSqGSIb3
|
||||||
|
DQEBBQUAA4IBAQCHXuSqK4vEDNIqZxMQiFqB4zwkz5KG3uZrbhqfHaqxxjinwlNJ
|
||||||
|
Sky9lAx2QN/sRDuk8M+8HZxRMsASIPzELMjjj19CduadkLFV4cj+0nP2m6K1li8y
|
||||||
|
RyGQpEwQi5MG2o+iQt3Ygw07KQJYhOXaifjEFJ8Q1U00KO+e9H7iLF8GrhLzmOv3
|
||||||
|
usLPIvE8dnNu+EkrC57c48g9vkzR+BWl4TA1TcJBy9r219Z4jGrIysPWJUPwhKJj
|
||||||
|
tf9Uk9oHbMkuv5Qc+NhCumkB82phIt5WxeL1mKgwKVxiZJ+4DysfD7cgni8jhq86
|
||||||
|
KZgEOMel6CekBa7ToLzUdvjU0SjT2DBBK6YD
|
||||||
|
-----END CERTIFICATE-----
|
||||||
|
|
@ -0,0 +1,18 @@
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIC5zCCAc+gAwIBAgIBAjANBgkqhkiG9w0BAQUFADATMREwDwYDVQQDEwhNeVRl
|
||||||
|
c3RDQTAeFw0xNDA4MjcxOTI2MDVaFw0xNTA4MjcxOTI2MDVaMCoxFzAVBgNVBAMM
|
||||||
|
Dm1icm9hZHN0LWJ1aWxkMQ8wDQYDVQQKDAZjbGllbnQwggEiMA0GCSqGSIb3DQEB
|
||||||
|
AQUAA4IBDwAwggEKAoIBAQDrzmzjgxNXxXX+fgfjB5Pt+YbO2uQR9PDADUyk+8Kw
|
||||||
|
/v1xjZBqKSHaBJLMv2nHlfGM8p92XQoepWKtG4z49UsT6MMppfUnZ/TO6LgUuJtw
|
||||||
|
FaVYdJmzK8SPvsQ331id9f4grgMTiff+i6hM2Bb9Jq83/jnglrBm8T4KHjPjJXQi
|
||||||
|
MN8d7ZkV2bo2vFQcO/KNTODntqINp5+OFPboyjDbMoMgUTqnXJBQsWwA9EVq2JYs
|
||||||
|
FYtA5xsqk0yG9DBgI5ClfxESQQo6lHKYeX2KIuHVO5awPpm+wZbIeR3l5QFqQrQZ
|
||||||
|
zfw7ANsA1RK4c85jb8K0vHxX1wV3kB+2kqpi4jxm/ucnAgMBAAGjLzAtMAkGA1Ud
|
||||||
|
EwQCMAAwCwYDVR0PBAQDAgeAMBMGA1UdJQQMMAoGCCsGAQUFBwMCMA0GCSqGSIb3
|
||||||
|
DQEBBQUAA4IBAQAxoTOMViXAKveeYx7I0dve/Te3TXe6XTlF0iFNIMp0FB3X0OeA
|
||||||
|
Bjknf6SUxY4qYV9DsFBGtXg8irkbothVNQKrhSedb6n+OQGy5z24oJ+vWW5jCyf3
|
||||||
|
TBoWRLnHY52j/4KElNpbEddacreYY6Ft5VYLZuyXy2G18xWjUnE5EG+QkizgAWzw
|
||||||
|
w9aTxS7qyGb7/FklJhH5OA8izi4JNbIrLEcUw4ECgYihtdLnZz/ANTp4kwz7qjaj
|
||||||
|
X7+8V3h7R59/HOHglCbjtkhBVuRyz5ljTfMbCava4Za2solujAo4tRxvmhioog0t
|
||||||
|
QplQjUP4QM5jfFlD/1HXY2SzYPG0FIiRj93L
|
||||||
|
-----END CERTIFICATE-----
|
||||||
|
|
@ -0,0 +1,2 @@
|
||||||
|
V 150827192423Z 01 unknown /CN=mbroadst-build/O=server
|
||||||
|
V 150827192605Z 02 unknown /CN=mbroadst-build/O=client
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
unique_subject = yes
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
unique_subject = yes
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
V 150827192423Z 01 unknown /CN=mbroadst-build/O=server
|
||||||
|
|
@ -0,0 +1,53 @@
|
||||||
|
[ ca ]
|
||||||
|
default_ca = testca
|
||||||
|
|
||||||
|
[ testca ]
|
||||||
|
dir = .
|
||||||
|
certificate = $dir/cacert.pem
|
||||||
|
database = $dir/index.txt
|
||||||
|
new_certs_dir = $dir/certs
|
||||||
|
private_key = $dir/private/cakey.pem
|
||||||
|
serial = $dir/serial
|
||||||
|
|
||||||
|
default_crl_days = 7
|
||||||
|
default_days = 365
|
||||||
|
default_md = sha1
|
||||||
|
|
||||||
|
policy = testca_policy
|
||||||
|
x509_extensions = certificate_extensions
|
||||||
|
|
||||||
|
[ testca_policy ]
|
||||||
|
commonName = supplied
|
||||||
|
stateOrProvinceName = optional
|
||||||
|
countryName = optional
|
||||||
|
emailAddress = optional
|
||||||
|
organizationName = optional
|
||||||
|
organizationalUnitName = optional
|
||||||
|
|
||||||
|
[ certificate_extensions ]
|
||||||
|
basicConstraints = CA:false
|
||||||
|
|
||||||
|
[ req ]
|
||||||
|
default_bits = 2048
|
||||||
|
default_keyfile = ./private/cakey.pem
|
||||||
|
default_md = sha1
|
||||||
|
prompt = yes
|
||||||
|
distinguished_name = root_ca_distinguished_name
|
||||||
|
x509_extensions = root_ca_extensions
|
||||||
|
|
||||||
|
[ root_ca_distinguished_name ]
|
||||||
|
commonName = hostname
|
||||||
|
|
||||||
|
[ root_ca_extensions ]
|
||||||
|
basicConstraints = CA:true
|
||||||
|
keyUsage = keyCertSign, cRLSign
|
||||||
|
|
||||||
|
[ client_ca_extensions ]
|
||||||
|
basicConstraints = CA:false
|
||||||
|
keyUsage = digitalSignature
|
||||||
|
extendedKeyUsage = 1.3.6.1.5.5.7.3.2
|
||||||
|
|
||||||
|
[ server_ca_extensions ]
|
||||||
|
basicConstraints = CA:false
|
||||||
|
keyUsage = keyEncipherment
|
||||||
|
extendedKeyUsage = 1.3.6.1.5.5.7.3.1
|
||||||
|
|
@ -0,0 +1,28 @@
|
||||||
|
-----BEGIN PRIVATE KEY-----
|
||||||
|
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC/T4RhynLiTGkc
|
||||||
|
gfq6TVwKVtvRy2jAOFOG7p9g4NofVTa0HvEUjNITwPUrYQDaOLSK6BtStss1aTeS
|
||||||
|
DfkY9wejl1PZ02lgz2CeznOvWp/74Rz8Mjc7BGz3WFOqcfJt6DyTj/wgE/lJXTVG
|
||||||
|
XsojQtDChYwEPNSWmAXLz1nLj2Ac1B4uy5kVsBCXkhWcu4E8xEaf6mIA9KvF1MWB
|
||||||
|
gHkNbZ2DruYsdlA4h95+40wn2qDkm9RgmE2MyFjV8YYjwv2s5G48+pj7o7Vg/3/Q
|
||||||
|
ZFuoGnU8GJ4gFFVOQQRqKOUrVFrJGduiVXxqPNjTt1rfopX4pC8GZ69NotARfrwl
|
||||||
|
BflM+Dm/AgMBAAECggEAUGYEhmxkN4JRMi/VxPG52oaCPvqy/QUu5SfnRvl38W8I
|
||||||
|
XE4clrxPlQmkfyR3DT6DcVT2Fp7Ha5zaQ8EnjDxUs4VnMcXNJWhBfLvaljkJvvru
|
||||||
|
CXa5C05i1NgD4T+d2F6fBoyeMoTyYMiRGQ/A92ye+wDQxP8jgF5HIU30uL16cOJh
|
||||||
|
/Znu6JJBjYgE9g7ce8REEpi2Fru2Ixj147ge1ICW801i0Xy5susCJvH3I817GKoq
|
||||||
|
NonAn5P+5zTv9mECDnNkhRViATigrQ8DYikNewPknrmfb0IMAvF8dTnCWI4KuorD
|
||||||
|
c4TD7w/zzrpncWNCnsDgWfgq9u9Anp6bvhED0VLiMQKBgQDgewv8skGmm4xAUKdR
|
||||||
|
BsDYIUgip57qj4EmPkjypn8lzVjDUnbBhr/NAUQK5pKnrzFE2H9/H7M1zlNwk1FS
|
||||||
|
m6GYjx4DmnGAvQ0LCBs4gxlT878n7TYTxkTge69tYQ0lmmAGGajmv2G4TtVADMlG
|
||||||
|
rojrQIYoSggVkUI+AyGhHhm8xQKBgQDaLCyBUSWPOMc33AozWMm2OYJ4nFWd1A0C
|
||||||
|
SLgpR6/+D8mT3o6YRYIMmh6AUFCENAKitbKujQOaKRll5aaNWO4JohhgcuzGEj5C
|
||||||
|
4F++7SXd6E/1+gtExnOHkPJ9z3FIeSoGCDK3DmfE8H9fcMM5mFZG7OVna3arINv4
|
||||||
|
nT8s3aAMswKBgQDDM5yn3+Zg17AtGTV1qxa0mrRclkAFnkZjGBRdFNVJ7Pf72VC1
|
||||||
|
VtSgkzI0/G2Y7So9wLmVtN4ksscyBJjZ6cWqoQErhvieR0b5SdJJ4Q58R1/5ezfk
|
||||||
|
GCw6vLM+vP8urMBFbbjG9rMmDz83FCdOlGUxlQlULZQ8FPVycUykC0W8NQKBgEjA
|
||||||
|
fj7JLnsp9dS8vXIN44Wue8F4cFxm/8eJNFAfpaJU5WU3y9kfJJTLN+yV26OaLF7R
|
||||||
|
tDncsBzSI7QE9psf0pDHytUuvaH3J2fppkPmlMAA3dkqfmN6wb+tKA+oAyCltsu4
|
||||||
|
JCFC3nufrvnGgnNMR0jzajQoc7PxCylGVnDBnsNdAoGAV62Nc+T6HdZa9yDSPU5p
|
||||||
|
bNT40q0iZHmTUa6QQl+ZsRZP8u4w+RnfcUOK+QKJr43DraJgjWtwbO2VnCIMTA21
|
||||||
|
EsSGuOCEMuYLMkswOrAJfM80FalsF3I74s5TbGYaczXXOe54XZJ8tyWSP0IiwreO
|
||||||
|
+eejI2bW3rU9TfBDdpR5Ks8=
|
||||||
|
-----END PRIVATE KEY-----
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
03
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
02
|
||||||
|
|
@ -0,0 +1,14 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
echo "[
|
||||||
|
{rabbit, [
|
||||||
|
{ssl_listeners, [5671]},
|
||||||
|
{ssl_options, [{cacertfile,'${TRAVIS_BUILD_DIR}/tests/files/certs/testca/cacert.pem'},
|
||||||
|
{certfile,'${TRAVIS_BUILD_DIR}/tests/files/certs/server/cert.pem'},
|
||||||
|
{keyfile, '${TRAVIS_BUILD_DIR}/tests/files/certs/server/key.pem'},
|
||||||
|
{verify,verify_peer},
|
||||||
|
{fail_if_no_peer_cert,false}]}
|
||||||
|
]}
|
||||||
|
]." >> rabbitmq.config
|
||||||
|
|
||||||
|
sudo CONFIG_FILE=$PWD RABBITMQ_NODENAME=test-rabbitmq rabbitmq-server -detached
|
||||||
Loading…
Reference in New Issue