I got this working late last week. I did the shotgun approach with all the values in both the distributor and connector.json and once it worked, I started to remove things to see when it stop working.
On Sun, Apr 18, 2021 at 10:00 PM Ning Zhang <ning2008w...@gmail.com> wrote: > if the source kafka cluster is SSL-enabled, then the consumer of mm2 > should be configured to read from SSL-enabled cluster > if the target kafka cluster is SSL-enabled, then the producer of mm2 > should be configured to write to SSL-enabled cluster. > > On 2021/04/16 03:23:21, Men Lim <zulu...@gmail.com> wrote: > > well the 405 is due to a syntax error in the connector.json. after > fixing > > that, passing the -k switch, it started. but when looking at the > > connect.log, mm2 is only talking in plaintext rather than SSL. After a > > while it timed out because the port 9094 is ssl while mm2 is trying to > use > > plaintext. at least got past the curl problem. > > > > On Wed, Apr 14, 2021 at 12:11 PM Men Lim <zulu...@gmail.com> wrote: > > > > > I read thru the security_ssl page when I started this, it doesn't apply > > > much to me because I'm running this in AWS MSK, where I can't access > the > > > broker. so my hands are tied there when it come to certificate. > > > > > > however, this morning, I decided to work on creating a self sign cert > for > > > the CURL command. I was able to get past the ssl handshake error and > now > > > running into another issue. > > > > > > * Trying 127.0.0.1... > > > * TCP_NODELAY set > > > * Connected to localhost (127.0.0.1) port 8443 (#0) > > > * ALPN, offering h2 > > > * ALPN, offering http/1.1 > > > * Cipher selection: > > > ALL:!EXPORT:!EXPORT40:!EXPORT56:!aNULL:!LOW:!RC4:@STRENGTH > > > * successfully set certificate verify locations: > > > * CAfile: /etc/pki/tls/certs/ca-bundle.crt > > > CApath: none > > > * TLSv1.2 (OUT), TLS header, Certificate Status (22): > > > * TLSv1.2 (OUT), TLS handshake, Client hello (1): > > > * TLSv1.2 (IN), TLS handshake, Server hello (2): > > > * TLSv1.2 (IN), TLS handshake, Certificate (11): > > > * TLSv1.2 (OUT), TLS alert, unknown CA (560): > > > > > > ** SSL certificate problem: self signed certificate* Closing > connection 0* > > > > > > so I tried passing the -k flag and got the following message > > > > > > * Trying 127.0.0.1... > > > * TCP_NODELAY set > > > * Connected to localhost (127.0.0.1) port 8443 (#0) > > > * ALPN, offering h2 > > > * ALPN, offering http/1.1 > > > * Cipher selection: > > > ALL:!EXPORT:!EXPORT40:!EXPORT56:!aNULL:!LOW:!RC4:@STRENGTH > > > * successfully set certificate verify locations: > > > * CAfile: /etc/pki/tls/certs/ca-bundle.crt > > > CApath: none > > > * TLSv1.2 (OUT), TLS header, Certificate Status (22): > > > * TLSv1.2 (OUT), TLS handshake, Client hello (1): > > > * TLSv1.2 (IN), TLS handshake, Server hello (2): > > > * TLSv1.2 (IN), TLS handshake, Certificate (11): > > > * TLSv1.2 (IN), TLS handshake, Server key exchange (12): > > > * TLSv1.2 (IN), TLS handshake, Server finished (14): > > > * TLSv1.2 (OUT), TLS handshake, Client key exchange (16): > > > * TLSv1.2 (OUT), TLS change cipher, Change cipher spec (1): > > > * TLSv1.2 (OUT), TLS handshake, Finished (20): > > > * TLSv1.2 (IN), TLS change cipher, Change cipher spec (1): > > > * TLSv1.2 (IN), TLS handshake, Finished (20): > > > * SSL connection using TLSv1.2 / ECDHE-RSA-AES256-GCM-SHA384 > > > * ALPN, server did not agree to a protocol > > > * Server certificate: > > > * subject: C=us; ST=il; L=Unknown; O=usfoods; OU=Unknown; CN=Unknown > > > * start date: Apr 14 16:52:07 2021 GMT > > > * expire date: Apr 12 16:52:07 2031 GMT > > > * issuer: C=US; ST=MI; L=Unknown; O=FUD; OU=Unknown; CN=Unknown > > > * SSL certificate verify result: self signed certificate (18), > continuing > > > anyway. > > > > PUT /connectors HTTP/1.1 > > > > Host: localhost:8443 > > > > User-Agent: curl/7.61.1 > > > > Accept: */* > > > > Content-Type: application/json > > > > Content-Length: 1251 > > > > Expect: 100-continue > > > > > > > < HTTP/1.1 100 Continue > > > * We are completely uploaded and fine > > > < HTTP/1.1 405 Method Not Allowed > > > < Date: Wed, 14 Apr 2021 19:07:01 GMT > > > < Content-Length: 58 > > > < Server: Jetty(9.4.33.v20201020) > > > < > > > * Connection #0 to host localhost left intact > > > *{"error_code":405,"message":"HTTP 405 Method Not Allowed"}* > > > > > > with the error, the mm2 process still isn't running. i'm not sure how > to > > > go about troubleshooting this HTTP 405 msg. Maybe the cert can't be > self > > > signed and need an official one. > > > > > > > > > On Tue, Apr 13, 2021 at 8:41 PM Ning Zhang <ning2008w...@gmail.com> > wrote: > > > > > >> assume your target / destination kafka cluster is SSL enabled. If your > > >> MM2 wants to write to such cluster, you may have the following config > in > > >> your MM2: > > >> > > >> > > >> > https://github.com/ning2008wisc/minikube-mm2-demo/blob/master/kafka-mm/values.yaml#L79-L80 > > >> > > >> on the broker (even client) side, you may refer to: > > >> > > >> http://kafka.apache.org/090/documentation.html#security_ssl > > >> > > >> On 2021/04/09 15:01:26, Men Lim <zulu...@gmail.com> wrote: > > >> > Hi Ning, > > >> > > > >> > thanks for the response. This self sign cert stays on the ec2 > instance, > > >> > specifically for the curl command and I don't have to share it with > the > > >> > brokers correct? > > >> > > > >> > thanks, > > >> > > > >> > > > >> > > > >> > On Fri, Apr 9, 2021 at 7:55 AM Ning Zhang <ning2008w...@gmail.com> > > >> wrote: > > >> > > > >> > > Hi Men, > > >> > > > > >> > > I used to deploy MM2 on EC2 with SSL and IIRC, probably give a > try of > > >> > > self-signing certs and key for testing purpose: > > >> > > https://linuxize.com/post/creating-a-self-signed-ssl-certificate/ > > >> > > > > >> > > On 2021/04/09 03:14:30, Men Lim <zulu...@gmail.com> wrote: > > >> > > > Hi Ryanne, > > >> > > > > > >> > > > thanks for the reply. My kafka clusters are on AWS, their > > >> serverless > > >> > > > platform, MSK. I'm stuck with using the default java cacerts > > >> unless I > > >> > > use > > >> > > > their AWS PCA which is pretty pricey. > > >> > > > > > >> > > > I ran the CURL command yesterday with the -v and --tlsv1.2 flag > and > > >> got > > >> > > the > > >> > > > following verbose message: > > >> > > > > > >> > > > curl -s -X POST -H 'Content-Type: application/json' --data > > >> > > @connector.json > > >> > > > https://localhost:8443/connectors -v --tlsv1.2 > > >> > > > * Trying 127.0.0.1... > > >> > > > * TCP_NODELAY set > > >> > > > * Connected to localhost (127.0.0.1) port 8443 (#0) > > >> > > > * ALPN, offering h2 > > >> > > > * ALPN, offering http/1.1 > > >> > > > * Cipher selection: > > >> > > > ALL:!EXPORT:!EXPORT40:!EXPORT56:!aNULL:!LOW:!RC4:@STRENGTH > > >> > > > * successfully set certificate verify locations: > > >> > > > * CAfile: /etc/pki/tls/certs/ca-bundle.crt > > >> > > > CApath: none > > >> > > > * TLSv1.2 (OUT), TLS header, Certificate Status (22): > > >> > > > * TLSv1.2 (OUT), TLS handshake, Client hello (1): > > >> > > > * TLSv1.2 (IN), TLS header, Unknown (21): > > >> > > > * TLSv1.2 (IN), TLS alert, handshake failure (552): > > >> > > > * error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert > > >> > > handshake > > >> > > > failure > > >> > > > > > >> > > > Thanks > > >> > > > > > >> > > > On Mon, Apr 5, 2021 at 7:26 AM Ryanne Dolan < > ryannedo...@gmail.com> > > >> > > wrote: > > >> > > > > > >> > > > > Yes it's possible. The most common issue in my experience is > the > > >> > > location > > >> > > > > of the trust store and key store being different or absent on > some > > >> > > hosts. > > >> > > > > You need to make sure that these locations are consistent > across > > >> all > > >> > > hosts > > >> > > > > in your Connect cluster, or use a ConfigProvider to provide > the > > >> > > location > > >> > > > > dynamically. Otherwise, a task will get scheduled on some > host and > > >> > > fail to > > >> > > > > find these files. > > >> > > > > > > >> > > > > Ryanne > > >> > > > > > > >> > > > > > > >> > > > > On Wed, Mar 31, 2021, 8:22 PM Men Lim <zulu...@gmail.com> > wrote: > > >> > > > > > > >> > > > > > Hello. I was wondering if someone can help answer my > > >> question. I'm > > >> > > > > trying > > >> > > > > > to run MirrorMaker 2 in distributed mode using SSL. I have > the > > >> > > > > distributor > > >> > > > > > running in SSL but when I can't get the curl REST api to do > so. > > >> I saw > > >> > > > > that > > >> > > > > > kif-208 fixed this but I can't seem to implement it. > > >> > > > > > > > >> > > > > > in my mm2-dist.prop file I have set: > > >> > > > > > //// > > >> > > > > > listeners=https://localhost:8443 > > >> > > > > > security.protocol=SSL > > >> > > > > > > > >> > > > > > > > >> > > > > > > >> > > > > >> > ssl.truststore.location=/home/ec2-user/kafka_2.13-2.7.0/cert/kafka.client.truststore.jks > > >> > > > > > //// > > >> > > > > > my connector.json file look like this: > > >> > > > > > > > >> > > > > > //// > > >> > > > > > { > > >> > > > > > "name": "mm2-connect-cluster", > > >> > > > > > "config":{ > > >> > > > > > "connector.class": > > >> > > > > "org.apache.kafka.connect.mirror.MirrorSourceConnector", > > >> > > > > > "connector.client.config.override.policy": "All", > > >> > > > > > "name": "mm2-connect-cluster", > > >> > > > > > "topics": "test.*", > > >> > > > > > "tasks.max": "1", > > >> > > > > > "source.cluster.alias": "source", > > >> > > > > > "target.cluster.alias": "target", > > >> > > > > > "source.cluster.bootstrap.servers": "source:9094", > > >> > > > > > "target.cluster.bootstrap.servers": "target:9094", > > >> > > > > > "source->target.enabled": "true", > > >> > > > > > "target->source.enabled": "false", > > >> > > > > > "offset-syncs.topic.replication.factor": "4", > > >> > > > > > "topics.exclude": ".*[\\-\\.]internal, .*\\.replica, > > >> > > > > > __consumer_offsets", > > >> > > > > > "groups.blacklist": "console-consumer-.*, > connect-.*, > > >> __.*", > > >> > > > > > "topic.creation.enabled": "true", > > >> > > > > > "topic.creation.default.replication.factor": "4", > > >> > > > > > "topic.creation.default.partitions": "1" > > >> > > > > > "key.converter": > > >> > > "org.apache.kafka.connect.json.JsonConverter", > > >> > > > > > "value.converter": > > >> > > "org.apache.kafka.connect.json.JsonConverter", > > >> > > > > > "security.protocol": "SSL", > > >> > > > > > "ssl.truststore.password": > > >> > > > > > > > >> "/home/ec2-user/kafka_2.13-2.7.0/cert/kafka.client.truststore.jks" > > >> > > > > > } > > >> > > > > > } > > >> > > > > > //// > > >> > > > > > > > >> > > > > > I would then start up the distributor and it launched > fine. So > > >> I > > >> > > try to > > >> > > > > > run the CURl command > > >> > > > > > > > >> > > > > > //// > > >> > > > > > curl -s -X POST -H 'Content-Type: application/json' --data > > >> > > > > @connector.json > > >> > > > > > https://localhost:8443/connectors > > >> > > > > > //// > > >> > > > > > nada. nothing. no error. no reasons for not starting. > > >> > > > > > > > >> > > > > > Is it possible to run MM2 with SSL? If so, can someone > point > > >> me to a > > >> > > > > > working example? > > >> > > > > > > > >> > > > > > thanks. > > >> > > > > > > > >> > > > > > > >> > > > > > >> > > > > >> > > > >> > > > > > >