These ovals have parameterisations
$(x(t),y(t))=(b\frac{ab\cos(t)}{b^2(\cos(t))^2+a^2(\sin(t))^2},a\frac{ab\sin(t)}{b^2(\cos(t))^2+a^2(\sin(t))^2})$ and $(x(t),y(t))=(h+b\frac{ab\cos(t)}{b^2(\cos(t))^2+a^2(\sin(t))^2},k+a\frac{ab\sin(t)}{b^2(\cos(t))^2+a^2(\sin(t))^2}).$
The dual curves are given by $(p(t),q(t))=(\frac{-y'(t)}{x'(t)y(t)-x(t)y'(t)},\frac{x'(t)}{x'(t)y(t)-x(t)y'(t)}).$
Now find the intersection points $P_i$ of the dual curves. Then the common tangents are the lines $x x(P_i)+y y(P_i)=1.$
The picture below shows only a few of the common tangents:

Here are the dual curves. Note that they have nodes corresponding to the bitangents.

To accentuate the node bitangent correspondence, here are both the curve and its dual, the point and the dual line (bitangent).

The red intersection point $P_3: (l,m)$ corresponds to the red common tangent through the correspondence $(l:m:-1)$ to $lx +my-1=0.$

I used $a=0.5, b=2.3, h=2.95, k=0.85$ with the following to get the plot
curve(((a^2*b*sin(t)*(2*a^2*cos(t)*sin(t)-2*b^2*cos(t)*sin(t))) /(a^2*sin(t)^2+b^2*cos(t)^2)^2 -(a^2*b*cos(t))/(a^2*sin(t)^2+b^2*cos(t)^2)) /((a^2*b*sin(t) *((-(a*b^2*sin(t))/(a^2*sin(t)^2+b^2*cos(t)^2)) -(a*b^2*cos(t)*(2*a^2*cos(t)*sin(t)-2*b^2*cos(t)*sin(t))) /(a^2*sin(t)^2+b^2*cos(t)^2)^2)) /(a^2*sin(t)^2+b^2*cos(t)^2) -(a*b^2*cos(t) *((a^2*b*cos(t))/(a^2*sin(t)^2+b^2*cos(t)^2) -(a^2*b*sin(t)*(2*a^2*cos(t)*sin(t)-2*b^2*cos(t)*sin(t))) /(a^2*sin(t)^2+b^2*cos(t)^2)^2)) /(a^2*sin(t)^2+b^2*cos(t)^2)),((-(a*b^2*sin(t))/(a^2*sin(t)^2+b^2*cos(t)^2)) -(a*b^2*cos(t)*(2*a^2*cos(t)*sin(t)-2*b^2*cos(t)*sin(t))) /(a^2*sin(t)^2+b^2*cos(t)^2)^2) /((a^2*b*sin(t) *((-(a*b^2*sin(t))/(a^2*sin(t)^2+b^2*cos(t)^2)) -(a*b^2*cos(t)*(2*a^2*cos(t)*sin(t)-2*b^2*cos(t)*sin(t))) /(a^2*sin(t)^2+b^2*cos(t)^2)^2)) /(a^2*sin(t)^2+b^2*cos(t)^2) -(a*b^2*cos(t) *((a^2*b*cos(t))/(a^2*sin(t)^2+b^2*cos(t)^2) -(a^2*b*sin(t)*(2*a^2*cos(t)*sin(t)-2*b^2*cos(t)*sin(t))) /(a^2*sin(t)^2+b^2*cos(t)^2)^2)) /(a^2*sin(t)^2+b^2*cos(t)^2)),t,0,2pi)
curve(((a^2*b*sin(t)*(2*a^2*cos(t)*sin(t)-2*b^2*cos(t)*sin(t))) /(a^2*sin(t)^2+b^2*cos(t)^2)^2 -(a^2*b*cos(t))/(a^2*sin(t)^2+b^2*cos(t)^2)) /(((a^2*b*sin(t))/(a^2*sin(t)^2+b^2*cos(t)^2)+k) *((-(a*b^2*sin(t))/(a^2*sin(t)^2+b^2*cos(t)^2)) -(a*b^2*cos(t)*(2*a^2*cos(t)*sin(t)-2*b^2*cos(t)*sin(t))) /(a^2*sin(t)^2+b^2*cos(t)^2)^2) -((a^2*b*cos(t))/(a^2*sin(t)^2+b^2*cos(t)^2) -(a^2*b*sin(t)*(2*a^2*cos(t)*sin(t)-2*b^2*cos(t)*sin(t))) /(a^2*sin(t)^2+b^2*cos(t)^2)^2) *((a*b^2*cos(t))/(a^2*sin(t)^2+b^2*cos(t)^2)+h)), ((-(a*b^2*sin(t))/(a^2*sin(t)^2+b^2*cos(t)^2)) -(a*b^2*cos(t)*(2*a^2*cos(t)*sin(t)-2*b^2*cos(t)*sin(t))) /(a^2*sin(t)^2+b^2*cos(t)^2)^2) /(((a^2*b*sin(t))/(a^2*sin(t)^2+b^2*cos(t)^2)+k) *((-(a*b^2*sin(t))/(a^2*sin(t)^2+b^2*cos(t)^2)) -(a*b^2*cos(t)*(2*a^2*cos(t)*sin(t)-2*b^2*cos(t)*sin(t))) /(a^2*sin(t)^2+b^2*cos(t)^2)^2) -((a^2*b*cos(t))/(a^2*sin(t)^2+b^2*cos(t)^2) -(a^2*b*sin(t)*(2*a^2*cos(t)*sin(t)-2*b^2*cos(t)*sin(t))) /(a^2*sin(t)^2+b^2*cos(t)^2)^2) *((a*b^2*cos(t))/(a^2*sin(t)^2+b^2*cos(t)^2)+h)),t,0,2pi)
There are ways to get the implicit equations defining the dual curves (I'd need to read up on them), and you could further use grobner bases.
The first has equation $a^4b^{10}x^6+3a^6b^8x^4y^2+3a^8b^6x^2y^4+a^{10}b^4y^6+(8a^6b^6-8a^4b^8-a^2b^{10})x^4+(-20a^8b^4+38a^6b^6-20a^4b^8)x^2y^2+(-a^{10}b^2-8a^8b^4+8a^6b^6)y^4+(16a^8b^2-32a^6b^4+8a^4b^6+8a^2b^8)x^2+(8a^8b^2+8a^6b^4-32a^4b^6+16a^2b^8)y^2-16a^6b^2+32a^4b^4-16a^2b^6=0$