APL (Dyalog Unicode), 40 36 35 33 2727 25 bytes
(⍉⊖⍪1↓⊢)⍣2∘↑⍳↓¨∘⊂1↓'⍣2∘↑⍳↓¨∘⊂'* *'⍴⍨+⍨'⍴⍨+⍨ Assumes ⎕IO←0, i.e. zero-based indexing. The output contains one leading and one trailing spaces on each line.
Many thanks to @FrownyFrog and @ngn for lots of golfing.
How it works
(⍉⊖⍪1↓⊢)⍣2∘↑⍳↓¨∘⊂1↓'⍣2∘↑⍳↓¨∘⊂'* *'⍴⍨+⍨'⍴⍨+⍨ ⍝ Main function train ''* *'⍴⍨+⍨'⍴⍨+⍨ ⍝ Repeat ''* *'' up to length 2×⍵ 1↓ ⍝ Drop first char ⍳↓¨∘⊂ ⍝ Generate lower-right corner of the hexagon ∘↑ ⍝ Convert to matrix (⍉⊖⍪1↓⊢) ⍝ Palindromize vertically and transpose ⍣2 ⍝ ... twice