Giving $C_1$ we define $C_2$. Now we have
$$
\cases{
C_1(x,y,r)=(x-r)^2+(y-r)^2-r^2=0\\
C_2(x,y,r)=(x-r)^2+(y-L+r)^2-r^2=0\\
E(x,y,x_0,y_0,a,b,t) = a^2 (\sin (t) (x-x_0)+\cos (t) (y-y_0))^2+b^2 (\cos (t) (x-x_0)-\sin (t) (y-y_0))^2-a^2 b^2=0
}
$$
We have five tangent points: $\{p_i, i = 1,\cdots,5\}$ with $p_i = \{x_i,y_i\}$. Now $p_3 = \{0,x_3\}, p_4=\{L,y_4\}, p_5 = \{x_5,L\}$. The conditions are:
$$
\cases{
E(p_i,p_0,a,b,t)=0,\ \ i = 1,\cdots,5\\
C_1(p_1,r_1) = 0\\
C_2(p_2,r_2) = 0\\
\nabla E(p_1,p_0,a,b,t)\times \nabla C_1(p_1,r_1) = 0\\
\nabla E(p_2,p_0,a,b,t)\times \nabla C_2(p_2,r_2) = 0\\
\nabla E(p_i,p_0,a,b,t)\times \nabla B_i,\ \ i = 3,\cdots,5
}
$$
where $B_i$ are the border conditions. So we have $12$ unknowns $\{a,b,x_I,y_i,t\}$ and $12$ conditions. Follows the MATHEMATICA code to solve this system of equations.
Clear[c1, c2, ell]
parms = {r1 -> 10/9, r2 -> 0.8947408975536746` , L -> 4};
parms = {r1 -> 1.2, r2 -> 0.818219539958136` , L -> 4};
parms = {r1 -> 1.21, r2 -> 0.8099999999999725`, L -> 4};
c1[p_, r_] := (p[[1]] - r)^2 + (p[[2]] - r)^2 - r^2;
c2[p_, r_] := (p[[1]] - r)^2 + (p[[2]] - (L - r))^2 - r^2;
ell[p_, p0_, a_, b_, t_] := a^2 ((p[[2]] - p0[[2]]) Cos[t] + (p[[1]] - p0[[1]]) Sin[t])^2 + b^2 ((p[[1]] - p0[[1]]) Cos[t] - (p[[2]] - p0[[2]]) Sin[t])^2 - a^2 b^2
p0 = {x0, y0};
p = {x, y};
p1 = {x1, y1};
p2 = {x2, y2};
p3 = {x3, 0};
p4 = {L, y4};
p5 = {x5, L};
pts = {p1, p2, p3, p4, p5};
equs1 = Table[ell[pts[[k]], p0, a, b, t], {k, 1, 5}];
equs2 = {c1[p1, r1], c2[p2, r2]};
gradc1 = Grad[c1[p, r1], p];
gradc2 = Grad[c2[p, r2], p];
gradell = Grad[ell[p, p0, a, b, t], p];
gradab = {0, 1};
gradbc = {1, 0};
gradcd = {0, 1};
cross[u_, v_] := u[[2]] v[[1]] - u[[1]] v[[2]]
equs3 = {cross[gradc1, gradell] /. Thread[p -> p1],
cross[gradc2, gradell] /. Thread[p -> p2],
cross[gradab, gradell] /. Thread[p -> p3],
cross[gradbc, gradell] /. Thread[p -> p4],
cross[gradcd, gradell] /. Thread[p -> p5]};
equs = Join[Join[equs1, equs2], equs3] /. parms;
Length[equs]
vars = {a, b, x0, x1, x2, x3, x5, y0, y1, y2, y4, t};
inits = {{a, 2.2}, {b, 0.6}, {x0, 3}, {y0, 2}, {t, Pi/2.5}, {x1, 2}, {x2, 2}, {y1, 1}, {y2, 3}, {x3, 3.7}, {y4, 1}, {x5, 2}};
sol = FindRoot[equs == 0, inits]
gr3a = ContourPlot[(ell[p, p0, a, b, t] /. sol) == 0, {x, 0, L /. parms}, {y, 0, L /. parms}, ContourStyle -> Red];
square = {{0, 0}, {L, 0}, {L, L}, {0, L}, {0, 0}} /. parms;
gr0 = ListLinePlot[square];
gr1 = Graphics[Circle[{r1, r1} /. parms, r1 /. parms]];
gr2 = Graphics[Circle[{r2, L - r2} /. parms, r2 /. parms]];
gr3 = ContourPlot[(ell[p, p0, a, b, t] /. sol) == 0, {x, 0, L /. parms}, {y, 0, L /. parms}, ContourStyle -> Red];
Show[gr0, gr3, gr1, gr2, AspectRatio -> 1, Axes -> False]
Show[gr0, gr3a, gr1, gr2, AspectRatio -> 1, Axes -> False]