I think your question is slightly unclear, especially around “northbound” and “southbound”.
I don’t like the terminology very much, because it’s unfamiliar. But some Apigee users and operators use “Northbound” to refer to the inbound request, and “Southbound” to refer to the outbound request, with respect to Apigee Edge itself. Each of these connections is HTTP/S, independently.
Therefore a “two way ssl connection between the northbound and the southbound” is not sensible.
With Apigee Edge you can connect inbound clients via 2-way SSL to the “northbound” interface of Apigee Edge. To say it in the regular Apigee Edge terminology, you can configure a ProxyEndpoint to listen on a VirtualHost which is configured for 2-way TLS.
You can ALSO connect Apigee Edge “southbound” to an external system, via 2-way TLS. In the parlance, this means configuring an HTTPTargetConnection with SSLInfo provisioned for 2-way TLS.
So which one do you want to configure for 2-way TLS?
It matters because in the first case, “northbound” or “inbound”, Apigee Edge acts as a TLS SERVER. In the latter case, Apigee Edge acts as a TLS CLIENT.
A TLS Server must be configured with a private key and a certificate. Usually that cert needs to be signed by a well-known Certificate Authority, to allow arbitrary clients (like curl and XMLHTTPRequest and so on) to trust the server. When doing 2-way TLS, the TLS Server must also have a “truststore”, which stores the certificates used to verify trust of the client cert passed on the inbound request.
Conversely, a TLS client must be configured with a key& cert, which identifies the client. And a Truststore, which the client uses to verify its trust of the TLS peer (the server it contacts).
In Apigee Edge, 2-way TLS can be configured on northbound or southbound, independently.
In all cases it’s documented pretty well.