[proofplan]
From a countable dense subset of $X^*$, we select one element of $X$ that nearly realises the norm of each dual element. The resulting countable set is shown to be dense by a Hahn-Banach separation argument: if its closed rational span were proper, a nonzero functional vanishing on the span would contradict the density of the chosen dual elements.
[/proofplan]
[step:Construct a countable set in $X$ by nearly realising dual norms]
Let $\{f_n\}$ be a countable dense subset of $X^*$.
For each $n$ with $f_n \neq 0$, choose $x_n \in X$ with $\|x_n\|_X = 1$ and $f_n(x_n) > \frac{1}{2}\|f_n\|_{X^*}$.
Set $D_0 = \{x_n : f_n \neq 0\}$, which is countable.
[/step]
[step:Show $\overline{\operatorname{span}(D_0)} = X$ via Hahn-Banach]
[claim:Span Is Dense]
$M := \overline{\operatorname{span}(D_0)} = X$.
[/claim]
[proof]
Suppose $M \neq X$.
By the Hahn-Banach theorem, there exists $g \in X^*$ with $\|g\|_{X^*} = 1$ and $g|_M = 0$.
In particular, $g(x_n) = 0$ for all $n$.
Choose $f_n$ with $\|g - f_n\|_{X^*} < 1/4$.
Then $\|f_n\|_{X^*} \geq 3/4$ (so $f_n \neq 0$), and
\begin{align*}
|f_n(x_n)| = |f_n(x_n) - g(x_n)| \leq \|f_n - g\|_{X^*} < \frac{1}{4}.
\end{align*}
But $f_n(x_n) > \frac{1}{2}\|f_n\|_{X^*} > \frac{3}{8}$, a contradiction.
[/proof]
[/step]
[step:Extract the countable dense subset of $X$]
Define $D = \{\sum_{k=1}^n q_k x_{n_k} : n \in \mathbb{N},\, q_k \in \mathbb{Q},\, x_{n_k} \in D_0\}$, the set of all finite rational linear combinations of elements of $D_0$.
This is countable and dense in $\operatorname{span}(D_0)$ (by density of $\mathbb{Q}$ in $\mathbb{R}$), hence dense in $\overline{\operatorname{span}(D_0)} = X$.
[/step]