[proofplan]
We prove the identity after pulling back along the splitting-principle map, where the bundle becomes a [direct sum](/page/Direct%20Sum) of complex line bundles. On that splitting space, the Whitney product formula expresses the total Chern class as a product over the Chern roots, and dualising each line bundle changes its first Chern class by a sign. Comparing the degree-$2k$ terms gives the desired sign $(-1)^k$, and injectivity in the splitting principle descends the equality to $M$.
[/proofplan]
[step:Pull back to a splitting space where $E$ is a sum of line bundles]
Let $r:=\operatorname{rank}_{\mathbb C}(E)$. If $r=0$, then $E$ is the zero complex vector bundle, $E^*$ is also the zero complex vector bundle, and the assertion follows from $c_0=1$ and $c_k=0$ for $k\ge 1$. Hence assume $r\ge 1$.
Since $M$ is paracompact and $E\to M$ is a smooth finite-rank complex vector bundle, the splitting principle for Chern classes applies to $E$ with integral cohomology coefficients. Thus there exist a smooth manifold $X$, a smooth map
\begin{align*}
\rho:X\to M
\end{align*}
and smooth complex line bundles $L_1,\dots,L_r\to X$ such that $\rho^*:H^*(M;\mathbb Z)\to H^*(X;\mathbb Z)$ is injective and
\begin{align*}
\rho^*E\cong L_1\oplus\cdots\oplus L_r.
\end{align*}
The pullback of the dual bundle is naturally isomorphic to the dual of the pullback bundle, through the fibrewise map sending a functional on $E_{\rho(x)}$ to its pullback along the canonical identification $(\rho^*E)_x=E_{\rho(x)}$. Therefore
\begin{align*}
\rho^*(E^*)\cong (\rho^*E)^*\cong L_1^*\oplus\cdots\oplus L_r^*.
\end{align*}
[guided]
The splitting principle is the device that lets us replace an arbitrary complex vector bundle by a direct sum of line bundles without losing cohomological information. Its hypotheses are satisfied here because $M$ is paracompact and $E\to M$ is a smooth finite-rank complex vector bundle. In the smooth splitting-principle construction, it supplies a smooth map
\begin{align*}
\rho:X\to M
\end{align*}
with two essential properties: first, the induced homomorphism $\rho^*:H^*(M;\mathbb Z)\to H^*(X;\mathbb Z)$ is injective; second, the pulled-back bundle $\rho^*E\to X$ splits as a direct sum of line bundles:
\begin{align*}
\rho^*E\cong L_1\oplus\cdots\oplus L_r.
\end{align*}
The injectivity is what will let us prove the equality after pullback and then descend it back to $M$.
We also need to understand the dual bundle after pullback. For each point $x\in X$, the fibre of $\rho^*(E^*)$ over $x$ is $(E_{\rho(x)})^*$, while the fibre of $(\rho^*E)^*$ over $x$ is also $(E_{\rho(x)})^*$ because $(\rho^*E)_x=E_{\rho(x)}$. These fibrewise identifications define a natural complex vector bundle isomorphism
\begin{align*}
\rho^*(E^*)\cong(\rho^*E)^*.
\end{align*}
Dualising the direct-sum decomposition gives
\begin{align*}
(\rho^*E)^*\cong (L_1\oplus\cdots\oplus L_r)^*\cong L_1^*\oplus\cdots\oplus L_r^*.
\end{align*}
Thus, on $X$, the problem has been reduced to the case of a direct sum of dual line bundles.
[/guided]
[/step]
[step:Compute the pulled-back total Chern classes from the Chern roots]
For any finite-rank complex vector bundle $F\to X$, let
\begin{align*}
c(F):=1+c_1(F)+c_2(F)+\cdots \in H^*(X;\mathbb Z)
\end{align*}
denominate its total Chern class. For each $i\in\{1,\dots,r\}$, define
\begin{align*}
x_i:=c_1(L_i)\in H^2(X;\mathbb Z).
\end{align*}
By the Whitney product formula for total Chern classes,
\begin{align*}
c(\rho^*E)=\prod_{i=1}^r c(L_i)=\prod_{i=1}^r(1+x_i).
\end{align*}
For a complex line bundle $L$, the standard dual-line-bundle identity is $c_1(L^*)=-c_1(L)$. Applying this to each $L_i$ gives
\begin{align*}
c(L_i^*)=1+c_1(L_i^*)=1-x_i.
\end{align*}
Using the Whitney product formula again for $\rho^*(E^*)\cong L_1^*\oplus\cdots\oplus L_r^*$, we obtain
\begin{align*}
c(\rho^*(E^*))=\prod_{i=1}^r(1-x_i).
\end{align*}
[/step]
[step:Compare homogeneous terms in the elementary symmetric expansion]
For each $k\in\{0,\dots,r\}$, define
\begin{align*}
e_k(x_1,\dots,x_r):=\sum_{1\le i_1<\cdots<i_k\le r}x_{i_1}\cdots x_{i_k}\in H^{2k}(X;\mathbb Z).
\end{align*}
with the convention $e_0(x_1,\dots,x_r)=1$. Expanding the product $\prod_{i=1}^r(1+x_i)$ shows that
\begin{align*}
c_k(\rho^*E)=e_k(x_1,\dots,x_r).
\end{align*}
Similarly, expanding $\prod_{i=1}^r(1-x_i)$ shows that
\begin{align*}
c_k(\rho^*(E^*))=e_k(-x_1,\dots,-x_r)=(-1)^k e_k(x_1,\dots,x_r).
\end{align*}
Therefore
\begin{align*}
c_k(\rho^*(E^*))=(-1)^k c_k(\rho^*E)
\end{align*}
for every $0\le k\le r$. For $k>r$, both sides are zero because a rank-$r$ complex vector bundle has no Chern classes above degree $r$, so the same equality holds for every integer $k\ge 0$.
[/step]
[step:Descend the equality from the splitting space to $M$]
Chern classes are natural under pullback by [citetheorem:9771], applied to the smooth map $\rho:X\to M$ and the finite-rank complex vector bundles $E^*\to M$ and $E\to M$. Hence
\begin{align*}
\rho^*c_k(E^*)=c_k(\rho^*(E^*))
\end{align*}
and
\begin{align*}
\rho^*c_k(E)=c_k(\rho^*E).
\end{align*}
Using the equality proved on $X$, we get
\begin{align*}
\rho^*c_k(E^*)=(-1)^k\rho^*c_k(E).
\end{align*}
Equivalently,
\begin{align*}
\rho^*\bigl(c_k(E^*)-(-1)^k c_k(E)\bigr)=0.
\end{align*}
Since $\rho^*:H^*(M;\mathbb Z)\to H^*(X;\mathbb Z)$ is injective by the splitting principle, it follows that
\begin{align*}
c_k(E^*)-(-1)^k c_k(E)=0.
\end{align*}
Thus
\begin{align*}
c_k(E^*)=(-1)^k c_k(E)
\end{align*}
for every integer $k\ge 0$, as required.
[/step]