Let S be a convex hypersurface (the boundary of a closed convex set V with nonempty interior) in Rn. We prove that S contains no lines if and only if for every open set U⊃S there exists a real-analytic convex hypersurface SU⊂U∩int(V). We also show that S contains no rays if and only if for every open set U⊃S there exists a real-analytic convex hypersurface SU⊂U∖V. Moreover, in both cases, SU can be taken strongly convex. We also establish similar results for convex functions defined on open convex subsets of Rn, completely characterizing the class of convex functions that can be approximated in the C0-fine topology by smooth convex functions from above or from below. We also provide similar results for C1-fine approximations.