This thread (including comments from both Bean and Alex) was very useful to me in PhD Quals preparation.
I would like to give a detailed proof using Bean's and Alex's outline, but without mention of Spec(R), in case the reader is less algebraic-geometry-inclined.
Corrections welcome. Thanks.
Proposition. Let R be a UFD in which every nonzero prime ideal is maximal. Then R is a PID.
Lemma 1. If p is a nonzero irreducible element of R, then (p) is a prime ideal of R.
Proof. Let a and b be nonzero elements of R such that ab ∈ (p), i.e. ab = pf for some nonzero element f ∈ R. If a and b are both non-units, then we can write their unique factorisations a = up1...pr and b = vq1...qs for unique irreducible elements pi and qj, and units u and v ∈ R. By unique factorisation, p = one of the pi's, or p = one of the qj's, or both. Hence either a ∈ (p) or b ∈ (p) or both. [Similar reasoning works if either a or b is a unit of R.] Thus, (p) is a prime ideal.
Lemma 2. If I is a nonzero prime ideal of R, then I is principal.
Proof. Suppose not. Then there exist nonzero non-units a & b ∈ I with unique factorisations a = up1...pr and b = vq1...qs such that pi ≠ qj for all i, j. As I is a prime ideal, at least one pi = p and one qj = q are such that p, q ∈ I. But then we have (p) ⊊ (p,q) ⊆ I ⊊ R and (q) ⊊ (p,q) ⊆ I ⊊ R. By Lemma 1, (p) are (q) are also prime ideals. As (p), (q) and I are all prime ideals, the question assumes that they are also maximal. Contradiction.
Proof of Proposition.
Following Alex's thread, let N be the set of non-principal ideals in R. Suppose that N is non-empty. N is a partially ordered set (with inclusion of ideals being the ordering relation). Any totally ordered subset of ideals J1 ⊆ J2 ⊆ ... in N has an upper bound, namely J = ∪ Ji. J is an ideal of R because the subset was totally ordered. If J = (x) for some x ∈ R, then x ∈ Ji for some i, and hence (x) = Ji. Contradiction. Thus, J ∈ N and by Zorn's Lemma, N has a maximal element. Call it n.
By Lemma 2, we see that n is not a prime ideal of R. Thus, there exist a, b ∈ R, such that a, b ∉ n, but ab ∈ n. But then n + (a) and n + (b) are ideals in R which are strictly bigger than n, and so must be principal ideals, i.e. n + (a) = (u) and n + (b) = (v) for u, v ∈ R. Then we have
n = n + (ab) = (n + (a)) (n + (b)) = (u)(v) = (uv). Contradiction.
Thus, N must be the empty set, i.e. all ideals in R are principal.